在git中,衝突產生的原因是因為在合併檔案時同一個檔案的同一個位置都修改了,並且內容不同;也即兩個已經提交的分支的相同檔案相同位置的不同操作進行了合併,所以產生了衝突;常見產生衝突的操作有兩分支合併和遠端倉庫程式碼拉取到本地。
本文操作環境:Windows10系統、Git2.30.0版、Dell G3電腦。
一、常見產生衝突操作:
兩分支合併
遠端倉庫程式碼拉取(pull)到本地
二。衝突產生原因:
合併檔案時,同一個檔案的同一個位置都修改了,且內容不同,會產生衝突
三。解決步驟:
1. git status 檢視衝突檔案
2.vim src/main/java/a.txt (假設a.txt為衝突檔案,這裡需要為檔案的全路徑),手動修改衝突部分
3.git add src/main/java/a.txt 告訴Git衝突解決了
4.git commit -m ‘解決衝突’ (解決衝突為註釋,可自定義)
兩個已經提交的分支的相同檔案相同位置的的不同操作進行了合併.
實戰演示
(1)情景
本地庫中兩個不同分支,修改同一個檔案同一程式碼塊,兩分支先後將修改合併到master分支上,master在合併第二個分支程式碼時,報錯:合併衝突。
(2)本地庫
<1>master分支
<2>建立兩個分支
<3>兩分支修改提交
aBranch分支:
bBranch分支:
(3)合併分支產生衝突
合併aBranch分支(將aBranch分支合併到當前master分支上):
注:
git merge:預設情況下,Git執行"快進式合併"(fast-farward merge),會直接將Master分支指向Develop分支。
使用--no-ff引數後,會執行正常合併,在Master分支上生成一個新節點。為了保證版本演進的清晰,建議採用這種方法。
再合併bBranch分支,產生衝突:
mergeTest.txt 檔案內容:
(4)解決衝突
在當前分支上(master),找到衝突檔案,直接修改衝突程式碼,add,commit。
注:簡單方法,使用vim修改,cat檢視衝突檔案。(注意要刪除git自動生成的衝突程式碼分隔符)
(5)完成衝突解決
注:提交或者合併都會生成git節點。每個節點對應一個程式碼版本。
推薦學習:《》
以上就是git為什麼會產生衝突的詳細內容,更多請關注TW511.COM其它相關文章!