Мой запрос на загрузку был объединен, что делать дальше?

Недавно я участвовал в проекте от GitHub. Я сделал следующее:

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

Это был мой первый раз, когда я совершил другой код, поэтому я не знаю, что делать. Теперь мой запрос на загрузку был объединен с оригинальным репо/проектом автором.

Что мне делать дальше? Должен ли я удалить ветку? Должен ли я объединить ветку? Что-нибудь еще?


Дополнительная информация:

Оригинальный проект имеет одну ветвь.

У меня также есть восходящий набор для получения последних обновлений из исходного репо. (Я сделал это так):

git remote add upstream https://path/to/original/repo.git

И я получаю такие обновления:

git fetch upstream

Ответ 1

Что делать дальше - это продолжать вносить новые функции или исправлять другие ошибки в своих собственных ветвях (подталкивается только к вашей вилке).

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

Вы также можете удалить вилку, если вы не планируете вносить дополнительные взносы, но она удалит соответствующую запись в "Хранилищах, в которые вы вносите вклад" .

Легче:

  • удалите ветвь fix (фактически, теперь она удалена для вас) на вашей вилке (и в вашем локальном клонированном репо: см. Удалить ветвь Git как локально, так и удаленно")
  • git pull upstream master (если master была веткой, в которой было исправлено ваше исправление: слияние будет быстрым): в этой точке нет необходимости переадресации.
  • воссоздайте ветвь исправления поверх обновленного локального master (теперь с последним от upstream master).

Однако никогда не забудьте сделать один шаг перед отправкой любого будущего запроса на перенос:

переформатировать сначала вашу текущую ветку (fix) из ветки адресата восходящего потока

(upstream являющийся исходным репо, которое вы разветкили: см. "В чем разница между происхождением и восходящим потоком в github?)

Прежде чем отправлять что-либо обратно в исходное репо ( "вверх по течению" ), вам необходимо убедиться, что ваша работа основана на верхней части последнего из указанного оригинального репо (или запрос pull не приведет к быстрой перемотке вперед слияние, когда оно было применено обратно на upstream repo).
См. Например, Рабочий процесс для управления запросами на перенос в общих репозиториях в github.

Другими словами, upstream может развиваться (на него нажимаются новые коммиты), пока вы заняты исправлением. Вам нужно переделать исправления поверх этой последней работы сверху, чтобы убедиться, что ваши коммиты по-прежнему совместимы с последней версией upstream.


OP Santosh Kumar спрашивает в комментариях:

Я потянул и слился с upstream, чтобы освоить, что теперь?

Если вы не внесли никаких новых исправлений со времени вашего недавнего запроса на перенос, см. выше (удалите и заново создайте новую ветвь fix поверх обновленной master).

Если вы сделали больше работы с момента запроса на перенос, я бы не слился с upstream, если я хочу сделать новый запрос на pull: я бы потянул и rebase:

git pull --rebase upstream master

Таким образом, вся моя новая локальная работа переигрывается поверх самой последней транзакции upstream master (полученной в моем локальном репо), предполагая, что master - это целевая ветвь, которая будет интегрировать мой будущий запрос на перенос.

Затем я могу подтолкнуть мою локальную работу к 'origin', которая является моей вилкой на GitHub upstream.
И из моей вилки на GitHub я могу смело сделать запрос на растяжение, зная, что он добавит только новые коммиты в upstream без необходимости разрешения слияния: слияние этих новых коммитов в upstream repo будет означать простое слияние быстрых переходов.


A git pull --rebase без указания ветки, поверх которой вы хотите переустановить свою (в настоящее время выданную) ветвь fix, не будет работать:

Это (git pull --rebase) говорит:

You asked to pull from the remote '`upstream`', but did not specify a branch. 

Должен ли я добавить мастер наконец? И что это будет делать, удалит ли моя ветвь fix?

Да, вы можете указать ветку, которая будет объектом запроса на pull, например 'master'.
Это не приведет к удалению ветки fix, но воспроизведет ее поверх верхнего master, выбранного в вашем репо.

Ответ 2

Во-первых, поздравляю вас с первым вкладом в проект Github.

Обычный рабочий процесс Github - это создание новой ветки для каждой проблемы, которую вы решаете. Таким образом, поддерживающий основной репозиторий может решить, какое из ваших решений нужно объединить, а какое - отказаться. После того, как филиал будет объединен вверх по течению, ветвь больше не понадобится и обычно может быть удалена.