У меня вопрос по протоколу ветвления git.Я начинаю ближе знакомиться с командами git, но все еще довольно плохо знаком с процессом.
Я работаю над проектом на основе git с еще одним человеком.Мы добавили большую функцию, поэтому мы изолировали нашу работу в «Branch_1».Другой разработчик начал работать над кучей дополнений в ветке Branch_1 под названием Branch_2.Другой разработчик поработал над Branch_2, а затем временно перешел к другим задачам.Мне нужно было продолжить и расширить изменения, которые он сделал в Branch_2, поэтому я создал Branch_3 на основе Branch_2.
Рисунок 1
Branch_1
|_______> Branch_2 (other developer working on)
|________> Branch_3 (I'm working on)
Пока я работаю над Branch_3, я понимаю ошибку FIX, которая должна быть частью всех ветвей, и мне нужна FIX, чтобы продолжитьразвивающийся филиал_3.(Кроме того, если работа Branch_3 прекращается, FIX должен быть во всех остальных ветвях независимо от этого.)
Поэтому я думаю, что нужно оформить Branch_1, внести изменения для FIX, оформить Branch_2, объединить в Branch_1,затем извлеките Branch_3 и объедините изменения из Branch_2.Смотрите рисунок 2 ниже.
Рисунок 2
git checkout Branch_1
# make my changes
git pull origin Branch_1 # to pull in any other changes
git push origin Branch_1
git checkout Branch_2
git pull origin Branch_2 # to pull in any other changes
git merge --no-ff Branch_1 # merge in branch 1
git push origin Branch_2 # push to the remote repository
git checkout Branch_3
git pull origin Branch_3 # to pull in any other changes
git merge --no-ff Branch_2 # merge in branch 2
git push origin Brach_3 # push to the remote repository
Однако в этом случае меня интересует несколько вещей:
- Есть много шагов, которые нужно сделать.Получает много времени через некоторое время.Если я создаю Branch_4 на основе Branch_3 и Branch_5 на основе Branch_4, необходимо выполнить еще больше шагов.
- Чтобы продолжить работу над Branch_3 после внесения FIX, мне, в основном, нужно сделать коммиты в Branch_2 моего сотрудника, которые он может не реализовать.
- Для более сложных установок, я не могу оценить, что ответвляется от чего.Я мог бы сделать свою ошибку FIX to Branch_1 и объединить ее с моими коллегами Branch_2, но, возможно, мой коллега создал Branch_2 путем отделения от некоторой промежуточной ветви, такой как Branch_1a.ИСПРАВЛЕНИЕ не было бы правильно объединено с Branch_1a в правильном порядке.
Мне в основном интересно, как другие подойдут к подобной ситуации.Правильный ли это подход при внесении изменений в иерархию ветвей?