我在工作站中有一个远程git存储库的签出副本.我不小心改变了我的本地并推到了遥控器.现在我想删除最后一次提交并返回上一次提交,同样应该推送到远程.
如果它是一个带有提交消息的新提交,我没关系.怎么做?
Von*_*onC 10
如果还没有人克隆您更新的远程仓库,您可以:
git reset --hard HEAD~
git push --force
Run Code Online (Sandbox Code Playgroud)
这将迫使本地和远程历史记录丢弃最新的提交.
(首先检查一下git fetch,因为你的错误提交没有推送新的提交)
如果新的历史记录不是一个选项,则a git revert
更安全,并且将导致新的提交取消前一个提交:您可以推送该新提交.
Tig*_*ine 10
我建议不要推动 - 强制另类历史.任何已经撤消更改的人都会在提取新内容时处理完全错误的历史记录.
一个更安全的选择是简单地做
git revert HEAD~1
git push origin master
Run Code Online (Sandbox Code Playgroud)
git revert将记录一个新的提交,它取消了前一个提交的所有效果