Что делать дальше: продолжать добавлять новые функции или исправлять другие ошибки в их собственных выделенных ветках (помещенных только в вашу вилку).
Это означает, что ваша вилка остается, но ветви внутри вашей вилки могут приходить и уходить.
Вы также можете удалить вилку, если не планируете вносить дальнейший вклад, но она удалит соответствующую запись в «Репозитории, в которые вы вносите вклад» .
Легче:
- удалите свою
fixветку (фактически, теперь она удалена для вас ) на вилке (и в локальном клонированном репозитории: см. « Удаление ветки Git как локально, так и удаленно »)
git pull upstream master(если это masterбыла ветка, в которую было интегрировано ваше исправление: слияние будет происходить с перемоткой вперед): на этом этапе перебазирование не требуется.
- воссоздайте ветку с исправлениями поверх обновленного локального файла
master(теперь с последним от upstream master).
Однако никогда не забывайте один шаг перед отправкой любого будущего запроса на перенос:
сначала переустановите текущую ветку ( fix) из ветки назначения восходящего потока
( upstreamэто исходное репо, которое вы разветвили: см. «В чем разница между origin и upstream в github »)
Прежде чем отправлять что-либо обратно в исходное репо («восходящий поток»), вам необходимо убедиться, что ваша работа основана на последнем из указанного исходного репо (или запрос на вытягивание не приведет к слиянию с ускоренной перемоткой после применения обратно на upstreamрепо).
См., Например, « Рабочий процесс для управления запросами на вытягивание в общих репозиториях в github ».
Другими словами, он upstreamможет развиваться (добавлять новые коммиты), пока вы заняты исправлением вещей. Вам нужно воспроизвести свои исправления поверх последней работы из апстрима, чтобы убедиться, что ваши коммиты по-прежнему совместимы с последней версией upstream.
OP Сантош Кумар спрашивает в комментариях :
Я вытащил и слил от upstreamмастера, что теперь?
Если вы не вносили никаких новых исправлений с момента последнего запроса на перенос, см. Выше (удалите и воссоздайте новую ветку fixповерх обновленного master).
Если вы выполнили еще какую-либо работу с момента вашего запроса на перенос, я бы не стал upstreamвыполнять слияние, если я хочу создать новый запрос на перенос :
git pull --rebase upstream master
Таким образом, вся моя новая локальная работа воспроизводится поверх самых последних upstream masterкоммитов (полученных в моем локальном репо), предполагая, что masterэто целевая ветка, которая будет интегрировать мой будущий запрос на перенос.
Затем я могу перенести свою локальную работу на ' origin', который является моей вилкой на GitHub upstream.
И из моей вилки на GitHub я могу безопасно сделать запрос на перенос, зная, что он будет добавлять только новые коммиты upstreamбез необходимости какого-либо разрешения слияния: слияние этих новых коммитов в upstreamрепо будет означать простое слияние с быстрой перемоткой вперед.
A git pull --rebaseбез указания ветки, поверх которой вы хотите перебазировать свою (в настоящее время проверенную) fixветку, не будет работать:
Это ( git pull --rebase) говорит:
You asked to pull from the remote '`upstream`', but did not specify a branch.
Должен ли я наконец добавить мастер? И что это будет делать? Удалит ли мою fixветку?
Да, вы можете указать ветвь, которая будет, например, целью запроса на вытягивание ' master'.
Это не удалит вашу fixветку, но воспроизведет ее поверх восходящего потока, masterполученного в вашем репо.
:)