教學1 使用分支

6. 解決合併的衝突

把 issue2 分支和 issue3 分支的修改合併到 master。

切換到 master 分支後,合併 issue2 分支。

$ git checkout master
Switched to branch 'master'
$ git merge issue2
Updating b2b23c4..8f7aa27
Fast-forward
 myfile.txt |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

執行 fast-forward(快轉)合併。

目前的歷史記錄

接著合併 issue3 分支。

$ git merge issue3
Auto-merging myfile.txt
CONFLICT (content): Merge conflict in myfile.txt
Automatic merge failed; fix conflicts and then commit the result.

自動合併失敗。由於在同一行文字進行了修改,所以產生衝突。這時myfile.txt的內容如下:

連猴子都懂的Git命令
add 修改加入索引
<<<<<<< HEAD
commit 記錄索引的狀態
=======
pull 取得遠端數據庫的內容
>>>>>>> issue3

請修改

在發生衝突的地方插入 Git 找到差異的部分,請做以下的修改:

連猴子都懂的Git命令
add 修改加入索引
commit 記錄索引的狀態
pull 取得遠端數據庫的內容

衝突的部分已經修改,請再次提交。

$ git add myfile.txt
$ git commit -m "合併issue3"
# On branch master
nothing to commit (working directory clean)

歷史記錄如下圖所示。因為在這次的合併產生了衝突,必須修改衝突的部分,所以會建立新的提交記錄表示修改的合併提交。這樣,master的HEAD就移動到這裡了。這種合併不是fast-forward合併,而是non fast-forward合併。

目前的歷史記錄