如何删除GitHub上的推送提交?

时间:2017-08-03 19:28:04

标签: git github

正如您可能从标题中猜到的那样,我意外地推送了提交。我想知道是否仍有办法删除或删除它?

虽然已经提出了这个问题(例如here),但我认为向网站添加更新版本会很有用,因为我不确定今天提供的答案是否仍然适用。

提前致谢!

3 个答案:

答案 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