У меня вопрос относительно протокола ветвления git. Я начинаю больше знаком с командами 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 для того, чтобы продолжить разработку Branch_3. (Также, если работа Branch_3 оставлена, FIX должен быть во всех других ветвях независимо).
Итак, моя мысль - проверить Branch_1, внести изменения для FIX, check_ 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 off Branch_4, еще больше шагов.
- Чтобы продолжить работу Branch_3 после создания FIX, я в основном должен выполнить обязательства в Branch_2 моего коллеги, которые он, возможно, не понимает.
- Для более сложных установок я не могу переопределить то, что отделилось от чего. Я мог бы исправить ошибку FIX в Branch_1 и объединить ее в своих сотрудников Branch_2, но, возможно, мой сотрудник создал Branch_2, отделив от него какую-то промежуточную ветку, такую как Branch_1a. FIX не был должным образом объединен с Branch_1a в правильном порядке.
Я в основном не согласен с тем, как другие приблизились бы к подобной ситуации. Является ли это правильным мышлением при внесении изменений, которые должны быть в иерархии ветвей?
См. Также http://stackoverflow.com/questions/6596030/whats-your-ideal-branch-architecture-within-git-for-web-applications и его ответы –