【Git學習筆記】merge的時候有衝突怎麼辦?
阿新 • • 發佈:2019-02-11
當我們將分支merge到一起的時候,如果分支之間有衝突了,必須先要手動解決分支間的衝突之後再merge。
【分支feature1的修改】
第一步:新建分支,並切換到分支git branch feature1
git checkout feature1
第二步:修改readme.txt,在readme.txt的最後一行新增如下內容:
Creating a new branch is simple AND quick.
第三步:add,並commit到版本庫
git add readme.txt
git commit -m "AND simple"
【在master分支上修改】
第一步:切回master分支
git checkout master
第二步:修改readme.txt,在readme.txt的最後一行新增如下內容:
Creating a new branch is simple & quick.
第三步:add,並commit到版本庫git add readme.txt
git commit -m "& quick"
【將feature1合併到master】
現在,master
分支和feature1
分支各自都分別有新的提交,變成了這樣:
(引自:廖雪峰的官方網站)
這種情況下,Git無法執行“fast-forward合併”,只能試圖把各自的修改合併起來,但這種合併就可能會有衝突,我們試試看:
第一步:哪些檔案有衝突?
從結果看到,當前在master分支上,有一個沒有merge過來的分支,這兩個分支上都也修改了readme.txt。說明,衝突有可能就存在於這個readme.txt裡面。
第二步:檢視衝突所在的檔案的內容
Git用”=======“區分兩個分支上的內容。
”=======“
與“<<<<<<<HEAD”之間是當前所在分支上的內容;”=======“
與“>>>>>>>feature1”之間是feature1分支上的內容;
第三步:修改readme.txt,將內容改為:
Creating a new branch is simple and quick.
第四步:add,並commit到版本庫
在,master
分支和feature1
分支變成了下圖所示:
(引自:廖雪峰的官方網站)
用帶引數的git log
也可以看到分支的合併情況:
現在,刪除feature1
分支:
git branch -d feature1
工作結束。