Git:将提交从主分支移动到另一个分支

17

我在主分支上进行了一系列良好的提交,但事后发现我应该在另一个分支上进行这些提交。我是否可以将从特定提交开始的这些提交移动到另一个分支,并将良好的提交保留在主分支上作为最后一个提交?


1
可能是使用Git将最近的提交移动到新分支的重复问题。 - Chris Kent
2个回答

25
当然可以:
$ git branch new-branch-name                       # Create a new branch from the current commit
$ git reset --hard <last good commit on master>    # Reset master to the good commit

所以,如果我想从主分支中移除最后两个提交到另一个分支。我会检出主分支的最后一个提交,从那里创建一个新的分支,然后重置主分支HEAD~2?这也不会从分支中删除提交吗?这是否意味着提交并没有被删除,只是主分支的指针现在指向了两个提交之前?也就是说,重置只是将分支指针向前移动了一些提交? - croraf
@craf: 该分支仍将指向之前在主分支上的两个提交。 - mipadi

1

是的,你可以这样做,这将是两个单独的操作

将提交从一个分支复制到你想要它们的分支:

git cherry-pick <hash_of_commit> --onto <target_branch>

然后修复分支,将其还原到一个良好的提交状态:

git checkout master
git reset --hard <hash_of_good_commit>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接