2016-05-16 107 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所做的。

相关问题