git rebase 的常见冲突及解决办法
生活随笔
收集整理的這篇文章主要介紹了
git rebase 的常见冲突及解决办法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. git cherry-pick與git rebase 進行兩個獨立分支的代碼合并時有兩個比較常用的命令,分別是git cherry-pick <commit-id>和git rebase。 cherry-pick主要可以用于拷貝某個單獨的patch,它的靈活性更大,而rebase主要用于整個分支的一次性合并。git rebase的使用語法為: git rebase <upstream-branch-name> <to-branch-name> 執行上述命令的過程為: 切換到to-branch分支; 將to-branch中比upstream-branch多的commit先撤銷掉,并將這些commit放在一塊臨時存儲區(.git/rebase); 將upstream-branch中比to-branch多的commit應用到to-branch上,此刻to-branch和upstream-branch的代碼狀態一致; 將存放的臨時存儲區的commit重新應用到to-branch上; 結束。 執行完上述第3步后,to-branch的代碼狀態已經改變,接著執行第4步時則可能會產生合并沖突。 2. 合并沖突的解決辦法 解決合并沖突幾個常見的辦法是: 手動編輯沖突文件,手動刪除或者保留沖突的代碼; 對于“both added”、“both deleted”、“both modified”等類型的沖突,若想完整地保留某一方的修改可以執行git checkout --ours(或者--theirs) <文件名>來選擇想要保留的版本。需要注意的是由于git rebase 是先撤銷再應用commit,所以這里的ours指的是upstream-branch,theirs指的是我們將要應用的臨時commit。 對于“added by us/them”、“deleted by us/them”等類型的沖突需要使用git rm <file-name>和git add <file-name>來刪除/添加file。在此過程中需要特別注意誰是us,誰是them。 沖突解決完之后,使用git add <file-name>來標記沖突已解決,最后執行git rebase --continue繼續。如果中間遇到某個補丁不需要應用,可以用下面命令忽略: git rebase --skip 如果想回到rebase執行之前的狀態,可以執行:?? git rebase --abort
轉載于:https://www.cnblogs.com/blackeyes/p/7636768.html
總結
以上是生活随笔為你收集整理的git rebase 的常见冲突及解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TKYDY是哪个品牌电喷?
- 下一篇: 先科同型号车载冰箱是重的好还是轻的好?