Как установить default fork для запросов на pull?

У меня есть комплект документации для API моей компании, основанный на отличной платформе Slate от TripIt. По инструкциям я разветкил их репо и приступил к его настройке. Эта вилка живет здесь.

Отвратительно то, что когда участники моей организации делают новый запрос на растяжение, "базовая вилка" на экране "Сравнение изменений" Github по умолчанию используется для репозитория TripIt, а не для моей вилки. Они не раз отправляли запросы направить в неправильное место. Говорить людям "не делай этого" не является особенно надежным решением. Как я могу установить значение по умолчанию для того, где PRs основаны на моей вилке?

Ответ 1

GitHub отслеживает форки, сделанные через их интерфейс, и предполагает, что запросы на извлечение будут для этого исходного хранилища. Вы должны сказать GitHub, что ваша копия не является форком, а скорее обычным репозиторием, который просто имеет одинаковую историю. К сожалению, GitHub не предлагает хороший способ просто снять галочку с вилки. Я обычно решаю это так:

  1. Клонируйте репозиторий, git pull и убедитесь, что ваша локальная копия полностью обновлена.

  2. Удалите репозиторий на GitHub.

  3. Создайте репозиторий на GitHub с тем же именем. Убедитесь, что это пустой репозиторий (не создавайте файл README или LICENSE.)

  4. git push вставляет весь контент обратно в хранилище. (Возможно, вам придется переключиться на каждую ветку и нажать на нее, а также вам может понадобиться git push --tags.)

Хрупкий: этот подход потеряет существующие проблемы GitHub и вытащит комментарии комментария. Если вы интенсивно их используете, этот подход, вероятно, является плохой идеей, и вам следует обратиться в службу поддержки клиентов GitHub, чтобы помочь вам.

Ответ 2

У ваших других разработчиков, похоже, есть разветвленный репозиторий TripIt, поэтому он является источником/родителем их работы. Фактически, если вы откроете свой собственный репозиторий, вы увидите, что он не был разветвлен вообще (количество вил равно 0).

Когда они выдают запрос на объединение, по умолчанию github показывает этот репозиторий как источник, и поэтому запрос на перенос не отправляется вам.

Простейшим обходным решением в этом случае является попросить вашего разработчика разблокировать ваш репозиторий и работать над ним.

Ответ 3

Если вы можете удалить (или запросить удаление) исходное хранилище A, из которого был разветвлен B, то сделайте это.

Если удалить/удалить A невозможно, но владелец A готов сделать следующее, тогда ссылка для разветвления будет разорвана, по крайней мере, на GitHub Enterprise:

  • пометить репо как частное
  • пометить репо A как Public снова

После этого репо B (который изначально был разветвлен из A) по умолчанию будет открывать PR против себя, а не A.