覆盤一次Git衝突處理
背景
專案用Git作為版本控制工具,我用TortoiseGit作為客戶端工具。今天程式碼提交時提示衝突,所以先把程式碼commit到了本地分支但沒有push,然後pull最新程式碼,其實只有2個檔案衝突,可是git客戶端裡卻顯示了很多diff狀態的檔案,當然不是我改的。
處理過程
解決那2個檔案的衝突後提交了程式碼,觀察到diff狀態的檔案全被覆蓋了,然後再次提交所有diff狀態的檔案。
為什麼只提交了衝突的檔案
因為diff狀態的檔案不是自己修改的,覺得沒必要提交,更重要的是覺得遠端分支已經有了修改的檔案,其實這些都沒錯,但是是接下來要講的導致問題了。
遠端程式碼為什麼被覆蓋了
後來檢視提交記錄的時候發現儘管提交的時候只勾選了2個衝突的檔案,但是diff狀態的檔案是以本地的版本,即pull操作前的 版本一起提交上去了,所以程式碼被覆蓋。
規律
以後處理衝突時,pull到的diff狀態的檔案並且不是自己改的,這種檔案也要提交