我做了一些非常奇怪的事情。我不知道该怎么做。
我正在和Gerrit合作,它只是告诉我它因为冲突而无法合并,但没有冲突,但我想这是因为分离的HEAD
我开始做一些非常随意的事情,首先我cherry-picked
3提交到一个,然后我再次分离主分支,我试图改变,但得到了合并冲突,所以最后我得到了以下日志
这是因为我不理解merge
和rebase
请你帮我修好历史(直线)并回答问题:
merge
和rebase
之间有什么区别,如果默认情况下git使用fast-forward
,那么结果看起来与rebase完全相同。在我的情况下,由于合并冲突,我无法做出反转。那么rebase
的目的是什么呢?
答案 0 :(得分:1)
Rebase与merge不同,因为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
根据需要多次。