git patch 衝突解決
1 git patch生成方法
git format-patch commit-id
commit-id 該次提交之後的所有patch,不包含commit-id這次提交
git format-patch commit-id1..commit_id2
commit-id1和commit-id2這兩次提交之間的所有patch
git format-patch -M master
當前分支所有超前master的提交
git format-patch -n commit-id
某次提交(含)之前的幾次提交,n指提交數,所有某次提交的patch命令為:git format-patch -1 commit-id
git format-patch命令生成的補丁檔案預設從0001開始編號,使用提交資訊中的第一行作為檔名稱;
如果加上引數--numbered-files,則輸出的補丁檔名稱只有數字;
如果加上引數-o dir, 則制定了補丁檔案的儲存路徑
2 應用patch檔案
檢查patch檔案:git apply --stat xxx.patch
檢查patch檔案能否應用成功:git apply --check xxx.patch
打patch:git am xxx.patch
3 應用patch時出現衝突
應用patch有時會出現錯誤:
...
error:xxx does not apply
...
此時檢視上述的錯誤資訊得不到任何有關衝突的提示,可以使用下面的方法解決這個問題:
git apply --reject xxx.patch
這樣可以先把沒有衝突的檔案進行合併,同時有衝突的檔案會做出標記(會產生xxx.rej檔案,xxx為檔名稱),檢視產生的rej檔案即可得知產生衝突的程式碼片段,對產生衝突的檔案進行修改,完成後可以刪除rej檔案,接著執行
git add 衝突檔案
git add 其它無衝突檔案
最後執行:
git am --resolved
便大功告成
參考文章:
https://blog.csdn.net/liuhaomatou/article/details/54410361
http://www.fwolf.com/blog/post/448