无法改变git,merge和Gerrit

时间:2017-02-23 16:48:13

标签: git merge gerrit rebase cherry-pick

我做了一些非常奇怪的事情。我不知道该怎么做。

我正在和Gerrit合作,它只是告诉我它因为冲突而无法合并,但没有冲突,但我想这是因为分离的HEAD

我开始做一些非常随意的事情,首先我cherry-picked 3提交到一个,然后我再次分离主分支,我试图改变,但得到了合并冲突,所以最后我得到了以下日志

http://imgur.com/a/FnJqI

这是因为我不理解mergerebase

之间的区别

请你帮我修好历史(直线)并回答问题:

mergerebase之间有什么区别,如果默认情况下git使用fast-forward,那么结果看起来与rebase完全相同。在我的情况下,由于合并冲突,我无法做出反转。那么rebase的目的是什么呢?

1 个答案:

答案 0 :(得分:1)

Rebasemerge不同,因为git仅在可以的情况下使用fast-forward。例如:你从master创建一个新的分支,你提交到你的新分支,你不提交master,然后你想要merge你的更改回到master:git我认为这就像你刚刚承诺master一样。如果你在这种情况下使用rebase,它会有同样的想法。

当你在两个分支上都有变化并且git无法使用快进时,真正的乐趣就开始了:然后merge将创建一个新的提交,父母将成为你在两个分支上的最后一次提交,并且rebase会尝试将您尝试重新绑定的分支的基础移动到另一个分支的头部。

因此,要“修复”您的历史记录(直线),您需要撤消合并(标记为头部),并且需要将Rebasing分支重新绑定到master分支< / p>

git checkout Rebasing
git rebase master

您仍然会遇到冲突,需要解决并继续

git rebase --continue

根据需要多次。