在变基需要帮助

时间:2015-11-28 09:42:33

标签: git git-rebase

以下是一个小例子。

UP:1-2-4-5-6-7-..........99                    
B:    \3-----------------\

我在2之后做了一个分支并做了提交。 我试图将UP合并到B但遇到冲突,我解决了并且承诺了。 现在我有两个提交。 但我想只有一个。当我试图重新建立时,它说道路上有很多冲突(我之所以放99)。有没有办法解决这个问题。 我只想在此之后进行一次提交。

2 个答案:

答案 0 :(得分:3)

如果我理解,你想在B分支的3提交位于UP分支的顶部(就在99之后)。

如果尝试通过UP重新绑定B,则应解决每次UP提交的冲突。这可能很乏味。你可以告诉git使用之前提交的冲突解决方案。

但考虑到我们只讨论了一次提交,我看到的最好方法是签出UP分支,然后挑选3提交。这会直接在UP分支上复制3提交的差异。您必须只解决一次冲突(如果有)。然后,如果它有效,您可以删除B分支。

答案 1 :(得分:1)

结帐并执行

git diff UP B | git apply

然后使用与3

相同的消息提交结果

如果你想要一个一体的'命令,应该是:

git diff UP B| git apply  && git add -u && git commit -m "$(git log -1 --pretty=%B your-sha1-for-commit-3)"