Git分支教程(下)

分支操作沖突出現(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)容如下:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容