Слияние ветвей
Вы можете объе динить несколько ветвей, используя команду git merge.
Рассмотрим ситуацию ниже. Есть две ветки: ветка bugfix
с несколькими фиксациями, исходящими из ветки main
.
![Branch](/static/8e4669099d5d6f52f1615f6f782d2152/5a190/01.png)
В этом случае объединение bugfix
обратно с main
не является большой проблемой. Это потому, что ветка main
не изменялась с момента создания ветки bugfix
. Git выполнит слияние, переместив позицию main
в последнюю позицию bugfix
. Это слияние называется fast-forward
(ускоренное).
![Fast-forward merge](/static/f617076d2bf6d0504aa51e362cea9342/5a190/02.png)
Однако в приведенном ниже примере ветка main
обновлялся несколько раз с тех пор, как ветка bugfix
была разветвлена. Изменения из ветки bugfix
и ветки main
должны быть объединены при выполнении слияния этих двух ветвей.
![It has advanced more than when a branch is divided](/static/f014779fb05caff4401520c480230148/5a190/03.png)
Для такого рода слияния создается merge commit
(фиксация слияния), а позиция main
обновляется до вновь созданной фиксации слияния.
![Merge commit incorporating both changes](/static/2268f09bc1aacd72a54da33e7318b123/5a190/04.png)
Даже если ускоренное слияние возможно, вы все равно можете принудительно выполнить слияние без ускоренного слияния.
![Non fast-forward merge](/static/e25c4039d74d5b2be21720dd3a01e618/5a190/05.png)
Как показано выше, неускоренное слияние оставляет ветку bugfix
как есть. Это дает вам более четкое представление о ветке функции bugfix
. Вы можете легко найти, где начинается или заканчивается ветка функции, и отслеживать изменения, внесенные в ветку функции.