當不同分支上的文件都發生了更改時,就會遇到把這些更改進行合并,這個時候要用到兩個操作:Merge 或者 Rebase 。
初始狀態
Merge
Merge 會把兩個分支最新的版本(C3
和 C4
)進行合并 ,并生成一個新的版本(C5
)。
git checkout master
git merge <some-branch>
如果沒有沖突,則直接合并。如果有沖突,則需要先解決沖突,再執行
git commit -m 'merge master with <some-branch>'
進行提交。
Merge 之后的狀態
Rebase
Rebase 會把 C4
所在分支中的修改應用到 C3
所在的分支上,這樣看起來之前 C4
所在的分支好像從來沒有存在過一樣。
git checkout <some-branch>
git rebase master
Rebase 之后的狀態
在執行 rebase
的過程中,如果有沖突要先解決沖突,等沖突解決完之后再執行
git rebase --continue
提交修改。
之后,再切換到 master
分支進行一次快速合并
git checkout master
git merge <some-branch>
補充
Git 啟用外部工具解決沖突可以使用
git mergetool