2016-05-16 109 views
8

我們經常從主服務器分支出去,在大型功能分支上工作。這些功能分支通常在與主人合併之前工作數天甚至數週(儘管最佳實踐表明我們需要儘可能頻繁地合併,實際上可能會不同)。git pull --rebase origin master每次出現時都會重新起始

因此,我們儘可能地嘗試到git pull --rebase origin master以保持與主人更新。但是,我們會偶爾遇到這樣的情況例如爲:

1)master支行出來

2)請在變化和提交更改的情況。

3)git pull --rebase origin master把提交放在master上。修復任何衝突和git add . + git rebase --continue

4)在作出更多的更改並提交更改。

5)git pull --rebase origin master

然而,在步驟5),該過程要求我們修復步驟3)中的相同衝突。這可能很乏味。

這是正確的最佳實踐git流程,如果沒有,我們還能做些什麼來使流程更高效?

回答

2

如果你發現自己固定在同一衝突,試圖激活git rerere(「使用重新有線重新解決方案」)。

git config --global rerere.enabled true 

這會爲您記錄那些衝突解決方案。

請參閱從Christophe Porteneuve

更在「Fix conflicts only once with git rerere」如果你喜歡rerere它解決了(我),你可以讓它自動級文件:你只需要調整,像這樣配置:

git config --global rerere.autoupdate true 
+0

這是一個很好的建議!我一定會在我的下一次改版中嘗試一下。這似乎是一個很好的參考[https://git-scm.com/docs/git-rerere](https://git-scm.com/docs/git-rerere) –

+0

@WeiJiaChen我同意:https:/// git-scm.com/docs/git-rerere是我在'git rerere'下的回答中提到的第一個鏈接。 – VonC

+0

明白了!我的監督:)感謝很多@VonC –

1

您還可以git merge主分支到您的特性分支繼續得到最新的變化和易於掌握的過渡。

對於一個長期運行的分支(你不應該這樣做,但是,嘿,現實並不完美:D)我通常更喜歡這個選項,以避免重寫整個分支歷史,這是--rebase所做的。

相關問題