正如您可能从标题中猜到的那样,我意外地推送了提交。我想知道是否仍有办法删除或删除它?
虽然已经提出了这个问题(例如here),但我认为向网站添加更新版本会很有用,因为我不确定今天提供的答案是否仍然适用。
提前致谢!
答案 0 :(得分:3)
是的,假设您要删除的提交是最近的提交。您可以在要删除的提交之前获取提交的提交ID。您可以使用git log
执行此操作。它可能看起来像这样。
commit d338e7a5626a763f74c2e69777ce930532fe008d
Author: Stan Liu
Date: Wed Aug 2 18:35:00 2017 -0700
Commit 2
commit 47d81989c633c3afb3fc6aa1f319c0c0d4d3871b
Author: Stan Liu
Date: Wed Aug 2 18:31:39 2017 -0700
Commit 1
如果要完成删除本地计算机上的更改,请执行git reset --hard <COMMIT_ID>
。在我的情况下,我将47d81989c633c3afb3fc6aa1f319c0c0d4d3871b
移除git reset --hard 47d81989c633c3afb3fc6aa1f319c0c0d4d3871b
。如果您有遥控器,则将新分支推送到远程仓库。
如果您只想删除提交,但保留该提交的更改,那么git reset <COMMIT_ID>
将起作用。
答案 1 :(得分:1)
是的,您可以在本地回滚您的工作,然后“强制”推送提交
git push --force
明智而谨慎地使用它!
答案 2 :(得分:1)
$ git commit -m "accidently committed"
$ git reset HEAD~
<< edit files as necessary >>
$ git add ...
$ git commit -c ORIG_HEAD