在提交mr的時(shí)候突然遇到了conflict,這時(shí)候意識(shí)到?jīng)]有及時(shí)pull代碼,腦海中想起了隔壁一起入職的同事經(jīng)常念叨的一句“每天早上來(lái)都pull一下代碼”。但是已經(jīng)遲了
我看了一下,主要是同一個(gè)文件,master分支上已經(jīng)被修改過,然后我要mr的代碼也在這個(gè)文件上進(jìn)行了修改。因?yàn)橛玫氖莋itlab,我一開始就在gitlab網(wǎng)頁(yè)上點(diǎn)擊了處理沖突的按鈕,點(diǎn)進(jìn)去的界面是一左一右,左邊是我的,右邊是master的(theirs)。這個(gè)時(shí)候,gitlab只給你兩個(gè)選擇,點(diǎn)擊左邊的“ours”或者是右邊的“theirs”,但是顯然這兩個(gè)代碼都要被合并在master,所以不能在gitlab上這么操作。
我重新打開idea,點(diǎn)擊了右上角的pull,這個(gè)時(shí)候從master上拉取代碼,出現(xiàn)了提示 有沖突。在跳出來(lái)的窗口上點(diǎn)擊merge,就會(huì)進(jìn)入處理沖突的界面。這個(gè)時(shí)候界面被分為三個(gè)部分,左邊是我的,右邊是master的。中間這部分比較重要,它是一個(gè)實(shí)時(shí)的預(yù)覽,展示的是最后的結(jié)果。
首先說一下這個(gè)界面會(huì)出現(xiàn)的幾種顏色,綠色表示新加、藍(lán)色表示修改、還有最重要的紅色就是沖突的部分。
我一開始理所當(dāng)然的認(rèn)為綠色和藍(lán)色我不需要處理,因?yàn)檫@些是沒有發(fā)生沖突的地方,我認(rèn)為它會(huì)被寫入到最終的合并結(jié)果里。于是我只處理紅色的沖突部分,我是這樣處理的:我把左側(cè)我的代碼復(fù)制,然后粘貼到中間。接著把右側(cè)master中本來(lái)就有的代碼復(fù)制,粘貼到中間。最后點(diǎn)擊合并。處理完之后我一看,完了,我之前新加和修改的代碼都沒了(也就是綠色和藍(lán)色的部分)。
還好我的代碼在第一次mr的時(shí)候就push到了遠(yuǎn)程的分支。于是我二話不說把本地的項(xiàng)目刪了,重新git clone master的代碼到本地,然后在idea里git checkout 到我的本地分支。之后再一次從master上pull代碼,于是出現(xiàn)了和剛才一樣的事情:存在沖突。這是必然的,在這個(gè)時(shí)候重新處理一次沖突合并就行了,只需要把藍(lán)色和綠色的代碼也一并復(fù)制到中間的結(jié)果區(qū),最后確定,就可以解決問題。
這件事情告訴我一個(gè)道理——每天早上來(lái)都pull一下代碼。但是嚴(yán)格來(lái)時(shí),應(yīng)該是每次push前都提交一下代碼。
另外還要說一下在我處理這種情況的時(shí)候,我有上網(wǎng)搜索別人的教程。比如這個(gè)我覺得應(yīng)該是有用的,但是由于我使用git的習(xí)慣是命令行+idea按鈕,對(duì)git命令行不完全熟悉,所以我按照這個(gè)教程沒有走完,在這里貼一下鏈接git 遠(yuǎn)程master分支合并到本地分支_逆風(fēng)優(yōu)雅的博客-CSDN博客_git合并遠(yuǎn)程分支到本地分支
最后再?gòu)?fù)習(xí)一下git的各種顏色:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-453555.html
紅褐色:創(chuàng)建之后沒有add,沒提交,不在版本控制范圍之內(nèi),這時(shí)候文件是紅褐色的,需要先add文件;
綠色:add之后是文件綠色的,沒有提交(commit);
藍(lán)色:原本有一個(gè)文件,改動(dòng)過后沒有提交(commit)是藍(lán)色的,提交之后,變成正常顏色。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-453555.html
到了這里,關(guān)于記一次git沖突解決的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!