如何在一个git提交中将主分支的更改合并到我的副项目分支中?

时间:2013-07-13 12:06:23

标签: git merge branch rebase gerrit

我有一个“项目”分支,大约一个月前由“主”分支创建。我正在尝试将所有更改从主分支引入项目分支,同时仍保持分支分离。我需要一个提交的最终结果,它是两个分支的组合,然后我可以推送到我们的gerrit设置。

我尝试获取两个分支的最新版本,然后将主分支合并到项目分支中。这导致合并提交加入了两个分支。但是,我想要一个单一的提交,所有的更改都可以很好地与gerrit一起使用,所以我尝试在“origin / project”之上重新设置分支,但是这时我想要合并主分支中的600多个提交自从两人分手了。既然是这样的话,我假设在这一点上推动提交将导致gerrit需要疯狂的变基。

我还尝试将项目分支重新绑定并压缩到其分支点之上的一个提交,然后在主分支之上重新设置一个提交。最后,它给了我一个“Refs ref / heads / project is [hash]但是预期[hash hash]”错误。这种方法也会删除我的项目分支的提交历史,不是吗?

有没有更好的方法来解决这个问题?我的假设是正确的,只要主分支中没有任何项目内容,下次我尝试将两者结合起来时,我会有同样的冲突吗?

2 个答案:

答案 0 :(得分:0)

merge不将两个分支合并为一个。仍然是两个不同的物理分支,其中提交到两个不同的地方。自原始拆分以来,主分支也不会对项目进行更改。所以合并是要走的路。 merge上有一个名为--no-ff的选项会强制单独提交。

答案 1 :(得分:0)

为什么你认为合并提交不起作用?将两个分支的历史记录合并为一个提交正是合并打算做的事情。它们与Gerrit一起使用 - 我们一直使用它们。