如何在Git中的分支之间移动提交?

我确信这是一个很简单的问题并得到了回答,但我不知道要搜索的条款。我有这个:
    /--master--X--Y
A--B
    --C--D--E
我在一个分支上提交C,D和E(仅限本地),但后来我意识到D和E实际上是独立于C.我想将C移动到它自己的分支,并保留D和E以供日后使用。也就是说,我想要这个:
                   /--C
    /--master--X--Y
A--B
    --D--E
我怎样从D和E下面抽出C?     
已邀请:
您可以使用
git cherry-pick
抓住C,并将其放在Y上。假设Y作为提示存在一个名为
branch-Y
的分支:
$ git checkout branch-Y
$ git cherry-pick C
所以现在C在Y之上。但是D和E也仍然包含C(樱桃挑选不会移动提交,它只是复制它)。你必须在B之上重新定义D和E.假设E是
branch-E
的尖端而B是
branch-B
,你可以:
$ git checkout branch-E
$ git rebase --interactive branch-B
这将打开一个交互式rebase会话。只需完全删除提交C,并保持D和E不变。然后,您将在没有C的情况下将D和E重新置于B之上。     

要回复问题请先登录注册