[英]git rebase (if no conflicts) otherwise git merge
當我的分支與master沒有沖突時,我更喜歡做一個git rebase
,因為它保留了一個簡單的歷史記錄。
但是當存在沖突時,有時rebase
會讓我解決每個遠程提交的沖突,這是更多的工作。 此外,我認為如果存在沖突,則沖突解決引入新錯誤的概率更高,因此在這種情況下我更願意進行merge
,這清楚地記錄了我開始編碼的位置,我做了什么,以及我是如何解決沖突的。
所以我一直這樣做:
git fetch -> git rebase
而且,如果有任何沖突:
git rebase --abort
git merge
我發現自己每天都會這樣做幾次。 有沒有內置的方法來實現這一目標? 或者我應該創建一個git
別名?
我更喜歡手動檢查傳入的提交, 然后決定rebase-vs-merge,但實際上你可以使用git rebase
在完成rebase時以零(成功)狀態退出的事實自動執行此操作,並且非零(失敗)狀態,如果沒有。 因此,您可以編寫一個小的shell腳本或適合用作shell別名的單行命令:
git fetch && { git rebase || { git rebase --abort && git merge; } }
它表示運行git fetch
,如果成功,運行一系列支持的命令:
git rebase
,如果成功,別的什么都沒有; 要么
git rebase --abort
,如果成功, git merge
(實際上並不需要內括號,因為&&
比||
更緊密地綁定,至少在sh和bash中。它們更多是為了清晰意圖。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.