Как включить другое репозиторий git в мое собственное репо, например, подмодуль, но с дополнительными изменениями / объединенными запросами? - PullRequest
0 голосов
/ 15 мая 2019

Я хочу добавить репозиторий github в мое собственное репо. Тем не менее, есть ошибка, которую мне нужно исправить. Для указанной ошибки выполнимый запрос уже сделан, но еще не объединен (проблемы с обратной совместимостью, которые мне не нужны).

До сих пор я использовал субмодули, но я не знаю, применить ли этот запрос без потери истории и т. Д.

Я следовал этому руководству: https://help.github.com/en/articles/checking-out-pull-requests-locally#modifying-an-inactive-pull-request-locally

Но тогда у меня фактически есть совершенно новая ветвь, которая находится только в моем репо, и она не чувствуется правильной.

1 Ответ

0 голосов
/ 16 мая 2019

Итак, у вас есть суперпроект в текущем каталоге и подмодуль в подкаталоге, давайте назовем его subm:

.
|
`--subm

Вставить (извлечь и объединить) PR в подмодуль:

cd subm
git fetch origin pull/$id/head:pr-$id
git merge pr-$id

Я показал git fetch и git merge отдельно, чтобы подчеркнуть, что происходит слияние. На самом деле эти команды могут быть объединены в одну git pull origin pull/$id/head.

Теперь у вас есть обновленный подмодуль. К сожалению, вы не можете вернуть его к origin, поэтому ваши соавторы должны объединиться. Чтобы обойти эту проблему, вам нужно преобразовать подмодуль из его origin в общий репозиторий, доступный вашей команде. Затем вы толкаете объединенную ветвь на развилку, и все ваши соавторы вытягивают из нее.

Когда субмодуль объединяет PR, вам больше не нужен форк. Вы удаляете ветвь, и вы и все соавторы обновляете подмодуль, используя git pull origin +master.

При каждом изменении в подмодуле вам нужно зафиксировать изменение в суперпроекте:

cd .. # back to the root of the superproject
git add subm
git commit -m "Update subm"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...