合并分支
您可以使用 git merge 指令来将多个分支集成。
考虑下面的情况。有两个分支:一个bugfix
分支,其中有一些来自main
分支的提交。
![Branch](/static/8e4669099d5d6f52f1615f6f782d2152/5a190/01.png)
在这种情况下,将“bugfix“合并回“主要“分支并不是什么大问题。那是因为自从创建“bugfix”分支以来,“主要“分支没有改变。Git 将通过将“主要“分支位置移动到“bugfix“分支的最新位置来合并它。这种合并称为“快进“。
![Fast-forward merge](/static/f617076d2bf6d0504aa51e362cea9342/5a190/02.png)
然而,在下面的示例中,自从bugfix
分支出来后,main
分支已经更新了几次。在这两个分支上执行合并时,必须组合来自bugfix
和main
分支的更改。
![It has advanced more than when a branch is divided](/static/f014779fb05caff4401520c480230148/5a190/03.png)
对于这种合并,创建一个“合并提交“并将“主要“位置更新为新创建的合并提交。
![Merge commit incorporating both changes](/static/2268f09bc1aacd72a54da33e7318b123/5a190/04.png)
即使快进合并是可能的,您仍然可以明确地强制它在没有快进合并的情况下进行合并。
![Non fast-forward merge](/static/e25c4039d74d5b2be21720dd3a01e618/5a190/05.png)
如上所示,非快进合并保留了bugfix
分支。这让您更清楚地了解功能分支bugfix
。您可以轻松找到功能分支的开始或结束位置,并跟踪对功能分支所做的更改。