分支操作沖突出現(xiàn)與解決
開發(fā)中對(duì)不同分支下同一文件進(jìn)行修改后執(zhí)行合并時(shí)就會(huì)出現(xiàn)文件修改沖突情況,這里說明一種比較常見的沖突問題 以master 和leaf01 兩個(gè)分支進(jìn)行演示說明。
本地分支操作沖突
修改master與leaf01分支前git01.txt 文件內(nèi)容狀態(tài)
master 主干文件內(nèi)容:

leaf01 分支文件內(nèi)容:

分支leaf01 下修改給git01.txt 并執(zhí)行提交操作 效果如下

主干master 下修改git01.txt 并執(zhí)行提交操作

執(zhí)行合并操作 此時(shí)發(fā)現(xiàn)git 在合并中產(chǎn)生沖突

執(zhí)行cat git01.txt? 可以看出沖突文件內(nèi)容

Git用<<<<<<<,=======,>>>>>>>標(biāo)記出不同分支的內(nèi)容 ?
<<<<<<< HEAD? 當(dāng)前git 指向分支 這里指的為master
=======? 分離不同分支修改的內(nèi)容
>>>>>>> leaf01? leaf01 與 master 在git01.txt 同一行同時(shí)出現(xiàn)了修改操作 這里git 是不允許發(fā)生的
此時(shí)出現(xiàn)沖突后 這里對(duì)git01.txt 內(nèi)容進(jìn)行修改 (實(shí)際開發(fā)視情況而定 這里將內(nèi)容合并為一行)

修改完畢master下執(zhí)行提交即可 執(zhí)行命令查看分支合并圖 git log --graph --pretty=oneline

多人協(xié)同操作沖突
拉取遠(yuǎn)程庫dev 并在本地創(chuàng)建dev開發(fā)庫,執(zhí)行命令 git checkout -b dev origin/dev? 這里以同臺(tái)機(jī)器不同窗口來模擬兩個(gè)用戶操作同一分支同一文件(實(shí)際開發(fā)時(shí)多人操作統(tǒng)一文件沖突情況比較常見)
這里兩個(gè)客戶端以c1與c2來描述
c1 客戶端本地修改dev 分支git01.txt 文件并在本地執(zhí)行提交操作 效果如下

執(zhí)行遠(yuǎn)程推送 將本地C1客戶端提交的git01.txt 推送到遠(yuǎn)程dev分支

而此時(shí)C2 客戶端在本地同樣修改了dev分支git01.txt 文件并在本地執(zhí)行提交

執(zhí)行推送操作 此時(shí)沖突出現(xiàn) 原因是另外一個(gè)用戶推送的文件與當(dāng)前客戶端推送內(nèi)容存在沖突:

此時(shí)解決方式Git 已有對(duì)應(yīng)提示 Push 之前先執(zhí)行Pull 操作 將遠(yuǎn)程文件拉取到本地 解決完沖突后再次執(zhí)行Push 操作
沖突解決
先執(zhí)行Pull 拉取操作

查看沖突文件內(nèi)容

這里在本地先處理沖突 將文本進(jìn)行合并 然后提交 在 push 操作即可

遠(yuǎn)程倉庫內(nèi)容如下:
