Рабочий процесс ветвей Git - PullRequest
2 голосов
/ 13 июня 2011

Я пытаюсь внести свой вклад в проект, и я хотел бы использовать рабочий процесс git-flow (?) В своей работе.Скажем, у меня есть checkout'd ветку develop удаленного репозитория (github) и что я установил 2 функциональные ветви (T для перевода, U для обновления):

---o---o---o (D)
           |---Ta---Tb (T)
           \---Ua---Ub---Uc (U)

Теперь, длякаждой ветке выдается запрос на извлечение для upstream сопровождающего репозитория, и он принимает их все и объединяет их с веткой upstream/develop.

Какова правильная процедура, чтобы я в итоге получил:

---o---o---Ta---Tb---Ua---Ub---Uc (D)
                               |- (T)
                               \- (U)

Что-то подсказывает мне, что git rebase - это то, что мне нужно.(Обратите внимание, я нахожусь на Windows).

1 Ответ

5 голосов
/ 13 июня 2011

Вы правы. Вы (или сопровождающий репозитория) должны представить изменения в свою ветку разработки:

git checkout develop
git rebase T
git rebase U

Во время перебазировки вам может потребоваться разрешить конфликты, если они возникнут.

Ваша последняя диаграмма ветвления показывает, что T и U имеют Uc в качестве родителя. Ребаз не изменит родителя веток. Вы можете сделать это, удалив свои ветви и воссоздав их после перебазирования выше.

git branch -D T
git branch -D U

Вам понадобится ключ -D, чтобы принудительно удалить ветвь, поскольку ветвь T и U никогда не объединялась с ветвью разработки, поэтому git не знает, что изменения ветки отражаются в develop филиал.

После этого вы можете воссоздать их:

git checkout -b T

git checkout develop
git checkout -b U
...