2018-07-06 Git解決沖突

Git進(jìn)階-解決沖突文件

問題說明:

本地分支:master&active

修改代碼分支:master

需合并代碼分支:active

遇到的問題:在master分支上將代碼commit之后,想要切換至active分支,報(bào)當(dāng)前有沖突文件,必須解決沖突之后才可以切換(因?yàn)橹扒袚Q分支,代碼會(huì)直接進(jìn)行merge,所以就想著直接切換分支去merge就好,但是有錯(cuò)誤提示了)

執(zhí)行merge之前的操作步驟

1.查看當(dāng)前狀態(tài)

$git status? ?結(jié)果:有文件改動(dòng),需要提交文件

2.添加文件并commit

$git add -A

$ git commit -m "update fail cases"

3.查看日志

$git log? 執(zhí)行結(jié)果:可以看到自己提交過的最新記錄

4.切換分支(想著會(huì)直接merge,就直接切換分支)

$git co active? 執(zhí)行結(jié)果:部分merge完成,部分有有沖突還是有什么問題,總之沒有切換成功

tip:從第5步開始就是在嘗試解決問題,是未知的

5.親自merge文件

$git merge active 執(zhí)行結(jié)果:當(dāng)然和上面4執(zhí)行結(jié)果一致(這時(shí)候master已經(jīng)顯示為:MERGING:表示正在merging狀態(tài))


心情描述:自己還是小白,不太敢亂操作,所以內(nèi)心戲如下:

想法1:撤銷merge,我不進(jìn)行合并了,回到未merge之前狀態(tài)(我慫)

想法2:怎么解決這些沖突,如何merge完成呢?

然后請教了百度和開發(fā)師傅,有了下文:

想法1的方案:

1.撤銷merge

$git?reset?--hard?HEAD

2.解決沖突文件

如果沒有代碼比對工具,只能自己去代碼文件里面比對了,因?yàn)橐呀?jīng)在merging狀態(tài),git已經(jīng)將文件有沖突的地方標(biāo)注出來,去查看代碼里面會(huì)看到下面三個(gè)標(biāo)志

①<<<<<<<HEAD

②=======

③>>>>>>>master

通過百度查看說:在①和②中間的是表示修改后的文件,②和③表示修改前的文件,

解決辦法:不管是修改后還是修改前,如果是你自己修改的(如果涉及多人合作的話,就需要溝通一下了),那么你應(yīng)該知道哪個(gè)是想要保留的,把需要保留的保留,需要?jiǎng)h除的刪除,并同時(shí)刪除以上三個(gè)標(biāo)記,然后重新保存,保存完了之后,就要當(dāng)做新修改文件對待了,從上面的第二步:git add -A開始重新來一遍,就可以merge了,然后也可以切換分支了


后續(xù):其實(shí)最開始不應(yīng)該在master分支修改的,但是因?yàn)樵趕ublime打開文件的時(shí)候,是從文件夾選擇,然后打開,但是不管是master分支還是active分支,在sublime打開文件夾的時(shí)候沒有標(biāo)識,不知道打開的到底是哪個(gè)分支下的文件,所以就認(rèn)為是master,然后每次運(yùn)行也是在master下運(yùn)行的用例,然后今天問了開發(fā)小哥哥,問怎么辦?解答是在命令行切換至想要打開的分支,然后在sublime打開。但是還沒有嘗試,還不知道是不是,待下次驗(yàn)證!

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

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

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