Git應用—02各類衝突場景處理(轉載)


Git衝突與解決方法html

http://www.javashuo.com/article/p-ddqurkmg-hx.htmlgit

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840202368c74be33fbd884e71b570f2cc3c0d1dcf000vim


一、git衝突的場景code

· 情景一:多個分支代碼合併到一個分支時;htm

· 情景二:多個分支向同一個遠端分支推送代碼時;blog


實際上,push操做便是將本地代碼merge到遠端庫分支上。ip

關於push和pull其實就分別是用本地分支合併到遠程分支 和 將遠程分支合併到本地分支,因此這兩個過程當中也可能存在衝突。get

git的合併中產生衝突的具體狀況:
    <1>兩個分支中修改了同一個文件(無論什麼地方)
    <2>兩個分支中修改了同一個文件的名稱
兩個分支中分別修改了不一樣文件中的部分,不會產生衝突,能夠直接將兩部分合並。
it


二、衝突解決方法ast

· 情景一:在當前分支上,直接修改衝突代碼--->add--->commit。

· 情景二:在本地當前分支上,修改衝突代碼--->add--->commit--->push

注:借用vim或者IDE或者直接找到衝突文件,修改。


三、實戰演示

(1)情景

  本地庫中兩個不一樣分支,修改同一個文件同一代碼塊,兩分支前後將修改合併到master分支上,master在合併第二個分支代碼時,報錯:合併衝突。

(2)本地庫

<1>master分支

clip_image001

clip_image002

<2>創建兩個分支

clip_image003

<3>兩分支修改提交

aBranch分支:

clip_image004

clip_image005

clip_image006

clip_image007

bBranch分支:

clip_image008

clip_image009

clip_image010

(3)合併分支產生衝突

合併aBranch分支(將aBranch分支合併到當前master分支上):

clip_image011

clip_image012

注:
git merge:默認狀況下,Git執行"快進式合併"(fast-farward merge),會直接將Master分支指向Develop分支。
使用--no-ff參數後,會執行正常合併,在Master分支上生成一個新節點。爲了保證版本演進的清晰,建議採用這種方法。

再合併bBranch分支,產生衝突:

clip_image013

mergeTest.txt 文件內容:

(4)解決衝突

--->在當前分支上(master),找到衝突文件,直接修改衝突代碼,add,commit。

clip_image014

注:簡單方法,使用vim修改,cat查看衝突文件。(注意要刪除git自動生成的衝突代碼分隔符)

(5)完成衝突解決

clip_image015

注:提交或者合併都會生成git節點。每一個節點對應一個代碼版本。

相關文章
相關標籤/搜索