在fork之前将最后一个git commit从branch转到另一个

时间:2014-07-06 14:03:02

标签: git

我遇到这种情况:

X-X-X-X-X-X-K-Y develop
            |-Z-X-X-X-W experimental

我想将提交Y中的更改从第一个分支转移到第二个分支,并将其放在第二个分支中的第一个提交之前,Z 我想要这个:

X-X-X-X-X-X-K-Y develop
              |-Z-X-X-X-W experimental

我该怎么办?

2 个答案:

答案 0 :(得分:2)

这是规范的情况,人们会使用rebase:

$ git checkout experimental
$ git rebase develop

答案 1 :(得分:1)

首先你必须挑选Y来实验。

假设你在实验分支上:git cherry-pick Y

然后实验看起来像这样:

Z-X-X-X-W-Y

然后你必须用git rebase -i Y^ experimental
对提交重新排序 这将带来git rebase的交互模式。请查看this answer以获取更多信息。

您必须在交互模式中使用的命令如下所示:

pick Y
pick Z
pick X
# all Xs
pick W

查看git-cherry-pick的手册页,以便您了解它。并在之前备份您的仓库; - )