Gitlab上手指南(六)|如何利用vscode工具快速的解決代碼衝突

語言: CN / TW / HK

相信很多用git的程序員對於git衝突都很恐懼。當你項目馬上要上線,測試讓你把主分支的代碼合併一下,要做一個迴歸測試,然後你合併的時候,一堆衝突代碼,直接讓你頭皮發麻。到底應該處理哪一個衝突,哪一段代碼應該刪除?哪一段代碼不能刪除呢?在你一通操作以後,發現竟然出了bug,然後上線延期。。。

首先我們來看看衝突時如何造成的

場景:如果有一個文件,你和另一個人同時修改某段代碼的一部分,他把修改完的代碼提交了以後,當你拉代碼的時候,就會發現跟你的衝突了。

入圖中所示:

上圖中,提示我們READMD.me文件發生了衝突,需要我們手動解決,然後執行git add <衝突文件名> git rebase --continue即可。

那麼出了這個問題應該如何解決呢?

我們藉助vscode提示工具,可以看到

這裏有四個選項

  • Accept Current Chagne 選擇當前的修改
  • Accept Incoming Change 選擇合併的修改
  • Accept Both Change 接受兩者
  • Compare Chagne比較查看

這是隻需要你自己查看一下你需要保留代碼的哪一部分,然後選擇不同的選項即可處理完畢這個衝突。不過在這之前,最好是找修改這個代碼的人確認一下,他這個代碼沒有沒有用,然後再決斷需要留還是不留。

然後執行一下git add . && git rebase --continue,發現出現了下面的一幕:

完全不要慌張,這個是讓你填寫一個commit信息,默認會本地最後一次commit信息。那麼這個如何去編輯呢?

其實這個是vim的操作模式,只需要執行下面幾行命令即可搞定:

```

按i進入編輯模式

i

修改好commit信息

按esc退出編輯模式

esc

最後使用:wq保存並退出vim模式

:wq ```

到此為止,一個完整的衝突解決完畢。

如果你對vim命令實在是太陌生,不要慌,你修改完代碼中的衝突部分以後,你可以在左側的可視化工具欄裏進行commit操作,效果和vim操作是一樣的。

最後,謹記一點,當你修改衝突代碼的時候,一定要看看這段衝突代碼是誰造成的,衝突代碼是不是線上代碼?如果是線上代碼千萬不要刪除,不然等你的代碼一上線,bug直接讓你奔潰。所以一定要跟相關的負責人去溝通一下。