2014-09-10 86 views
1

我们的团队一直在开发一个项目的2个版本。覆盖git分支,同时保留历史

master分支中的提交基本上是对旧代码的错误修正, 而v2setup分支包含完整的重写。

如果没有发生这些错误修正我可以简单地将新分支压回主服务器, 但如果我没有错误,那只会导致现在恼人的冲突。

那么我该怎么做呢?

回答

1

这听起来像你想合并master到v2Setup中......但是对于HEAD中的代码是什么v2Setup现在是这样吗?

如果是这样,这其实是相当容易使用的合并策略“我们的”

所以合并掌握到v2Setup与

git merge -s ours master 

编辑acheive 好了,阅读评论,听起来就像你想在master上前进,但随着v2Setup的变化。所以从上面的命令你现在可以合并回到主,你会得到你想要的。

或者更好的办法是使用他们的策略,从主

git merge -X theirs v2Setup 
+0

之后,你会最终母版,其中它是,但v2Setup将与主人的历史分支。因此,在那之后,如果你想继续你的主人的工作,你可以签出master并将v2Setup合并到它里面:)我从来不明白为什么没有他们的策略,有没有什么好的理由呢? – theadam 2014-09-11 07:26:02

+0

不完全。前段时间v2setup支持主控,我想“合并壁球”回主控。我以为我可以删除'master'中的所有文件,从'v2se​​tup'复制这些文件并作为一个大变更提交,但我不知道这是多么正确和高效。 – skerit 2014-09-11 08:34:33