0

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

我尝试获取两个分支的最新版本,然后将主分支合并到项目分支中。这导致了合并两个分支的合并提交。但是,我想要一个包含所有更改的单个提交,这些更改将与 gerrit 很好地配合,所以我尝试将分支重新定位在“origin/project”之上,但这又要我去合并主分支中的 600 多个提交自从两人分手。既然是这种情况,我假设此时推送提交将导致 gerrit 也需要疯狂的 rebase。

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

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

4

2 回答 2

0

A merge does not combine the two branches into one. The are still two different physical branches in which commits go to two separate places. Also the master branch will not have changes from project since the original split. So merge is the way to go. There is an option on merge called --no-ff that will force a separate commit.

于 2013-07-13T14:53:28.193 回答
0

为什么你认为合并提交不起作用?将两个分支的历史合并到一个提交中正是合并的目的。它们与 Gerrit 配合得很好——我们一直在使用它们。

于 2013-07-15T17:18:24.183 回答