Mar*_*lon 3 git github visual-studio-code
我的 git 存储库中有 3 个主要分支:dev、release和master. 我对 进行更改dev,然后将其合并到release,并master在生产时合并到 。进行合并后,我将 3 个推送到 github。
我犯了一个错误,并以某种方式将 origin 合并release到我的本地dev. 你可以在下图中看到。我已正确地将 dev 合并到release中,但之后有一个从 origin 的合并release到dev.
我想删除最后一次提交,merge branch 'release' of https://github....就好像它从未发生过一样。
我尝试使用 VSCode revert 命令:
但我收到了这条消息:
Error: Unable to Revert Commit
Already up to date!
On branch dev
Your branch is up to date with 'origin/dev'.
nothing to commit, working tree clean
在 Git 中,该revert命令(由 VS Code 在幕后使用)不会删除有问题的提交。相反,它会创建一个新的提交来撤消更改。有关 的更多信息,请参阅此处revert。
如果您指定要返回到合并的哪“一侧”,则可以revert与合并提交一起使用;例如
git revert -m 1
然而,这仍然不是您想要的。你想做的事情由reset命令来处理。
请小心:在所有 Git 命令中,reset这是最容易丢失工作的方法之一!尽管仍有可能消除错误的影响,但相对困难reset。
为了安全起见,您可以先创建 dev 分支的备份:
git switch dev
git branch dev-backup
以下内容应该删除您的合并提交:
git reset --hard HEAD^
如果一切顺利,您可以删除备份:
git branch -D dev-backup