1. 程式人生 > >Git解決衝突總結

Git解決衝突總結

介紹

使用git經常出現不同的提交者對一個檔案進行更改,進而導致所謂的衝突(conflict),相當球疼!

當然,你用視窗工具來使用git,一般這樣的工具都會給你提供比較友好的解決方案,只需要點選滑鼠就可以解決衝突,比如SourceTree右鍵點選衝突檔案會有“Use Theirs”和“Use Ours”類似的選項。針對一些極客程式猿,完全使用命令列來控制git的,以下介紹的就是一個簡單的解決方案。

一般衝突有程式碼的衝突和非程式碼(比如一些配置檔案等,原子的)的衝突。我們也分兩種情況來解決。

非程式碼衝突的解決

非程式碼檔案,即是像一些二進位制檔案,不能開啟編輯的,或者開啟編輯你也不曉得編輯哪些內容的檔案。比如Unity下面的ProjectSettings這樣的檔案,記錄工程的一些資訊。
這樣的檔案我們通常就只有兩種選擇,一個是使用“我”的,一個是使用“他”的。

git checkout --ours xxx/xx/x
git checkout --theirs xxx/xx/x

然後git add xxx/xx/x這個檔案就可以解決這個衝突了!

程式碼檔案衝突的解決

這個是我們最常遇見的問題。比如小明更改了一段程式碼,小聖也更改了這段程式碼,且最終想要的一部分來源於小明,一部分來源於小聖,那麼就會產生衝突。我們就需要藉助合併工具來進行程式碼篩選。
一般git裡面都會配置合併工具,我們通過命令列開啟之:

git mergetool

這裡用VS自帶的合併工具舉例:

選用“Ours”
選用“Theirs”