Git 推送到错误的分支

标签 git github

使用 git,在一些“提交”和一些“推送”之后,我意识到我使用了错误的分支!

现在我必须以某种方式删除我在 wrong_branch 中的更改 并提交并推送 right_branch 中的更改

最好(也最简单)的方法是什么?

谢谢

最佳答案

切换到该分支,分别检查 git loggit revert 那些提交。完成后,切换回所需的分支,然后您可以使用 git cherry-pick 从 git refs 中选择特定的提交并将其 merge 到正确的分支中。

git checkout wrong_branch
git revert commitsha1
git revert commitsha2
git checkout right_branch
git cherry-pick commitsha1
git cherry-pick commitsha2

如果提交被组合在一起,并且在你的脏提交之后没有推送任何提交,你甚至可以使用 git reset 将错误的分支恢复到你提交之前的状态,然后再次执行使用 git cherry-pick 将您的提交放入正确的分支。

git checkout wrong_branch
git reset commitsha3 #commit just before commitsha2
git checkout right_branch
git cherry-pick commitsha1
git cherry-pick commitsha2

关于Git 推送到错误的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6465699/

相关文章:

git - 一个 git 子模块卡在错误的提交 ('submodule update' 不工作)

ruby-on-rails - 如何在 Ruby 中处理包含空格的文件名(在 Git Bash 中)

git - 将内容从 GitHub 移动到 JsDelivr 有哪些步骤?

git - 如何注释 git 存储库?

macos - Github Mac权限问题

bash - 不在 git 存储库中时无法抑制 git 分支错误

git - 如何从 Jenkins 管道脚本中的远程仓库克隆目录?

github - 如何在 GitHub Windows 客户端中同步未同步的提交?

angularjs - github是不是前端用angularJS编码的

python - 删除 .py 文件,编译 .pyc 文件和 git - 如何?