git提交并推送到错误的分支

时间:2016-04-11 13:08:53

标签: git

我在版本分支V4.15.0中工作,在我做了一些应该转到master分支的小改动后,我提交并推送。

什么是恢复这个错误的最佳方法?有没有办法可以将提交从V4.15.0移到master,而不必删除提交?

1 个答案:

答案 0 :(得分:2)

首先我们需要修复V4.15.0分支。有两种可能的方法。

git revert是最简单的方法。当给定单个提交ID时,revert将创建其反向作为历史记录中的新提交。

git checkout V4.15.0
git revert HEAD

如果您不希望历史记录显示错误,则必须使用push --force重置历史记录。请注意it is usually a bad practice重写非用户分支中的历史记录,并且由于这个原因,某些存储库管理器从不允许--force。但在您的情况下可能会接受,请使用您的工作流程政策进行验证。

# checkout the original V4.15.0 branch
git checkout commit_before_mistake_V4.15.0
# we are now detached from HEAD, so checkout a new branch
git checkout -b fixed_branch
# force push, this rewrites history
git push fixed_branch:V4.15.0 --force

现在我们必须将提交移动到主分支。

幸运的是,使用上述两种方法中的任何一种都不会删除错误的提交。记住它的id,你可以使用git cherry-pick id将该提交添加到任何其他分支。

git checkout master
git cherry-pick id