如何在VS Code中撤销误推送的未完成更改?
撤销已推送的Git更改
情况1:远程分支还没有其他人拉取过你的更改
这种情况可以直接回退本地提交后强制覆盖远程分支:
- 查看提交记录,找到要回退到的目标提交哈希值:
git log --oneline - 回退到指定提交(假设目标哈希为
abc123):
注:git reset --hard abc123--hard会彻底丢弃当前工作区和暂存区的未提交更改;如果想保留本地修改,可改用--soft或--mixed,但撤销推送更改通常用--hard更彻底。 - 强制推送到远程分支(以
main分支为例):git push -f origin main
情况2:已经有其他人拉取了你的更改
强制推送会导致他人本地仓库冲突,此时更安全的方式是生成反向提交来抵消更改:
- 找到需要撤销的提交哈希值(同样用
git log --oneline查看): - 创建反向撤销提交:
命令执行后会弹出编辑器,填写撤销提交的说明后保存退出即可。git revert abc123 - 推送这个新的撤销提交到远程:
其他人拉取后会自动应用该撤销提交,不会产生冲突。git push origin main
注意事项
- 使用
git reset --hard和强制推送前,务必确认没有其他人基于你要撤销的提交做了新更改,否则会丢失他人的工作内容。 - 若只需撤销提交中的部分更改,可执行
git revert -n abc123,手动调整文件后再提交推送。
内容的提问来源于stack exchange,提问作者N.Thuvaraka
相关产品推荐
相关产品推荐

