2017-08-03 109 views
1

正如你大概可以从标题猜测,我不小心推动承诺。我想知道是否还有办法让我删除它或删除它?如何删除GitHub上的推送提交?

虽然这个问题已被问到(如here)我认为这将是有益的添加更多的更新版本的网站,因为我不知道是否提供的答案仍然适用于今天。

在此先感谢!

+0

的可能重复[我怎样才能删除GitHub上提交?](https://stackoverflow.com/questions/448919/how-can-i-remove-a-commit-on-github) – phd

回答

2

是的,假设你想删除的提交是最近的提交。您可以在您想要删除的提交之前获取提交的提交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>,如果你想完成删除您的本地机器上的变化。在我的情况下,我将删除47d81989c633c3afb3fc6aa1f319c0c0d4d3871bgit reset --hard 47d81989c633c3afb3fc6aa1f319c0c0d4d3871b。然后,如果您有远程设备,请将新分支推向远程回购。

如果你只是想删除提交,但保留提交的变化,那么git reset <COMMIT_ID>将工作。

+0

我会尝试这个现在 –

+0

对不起,如果我想删除'd338e7a5626a763f74c2e69777ce930532fe008d'话,我'的git的复位 - 硬47d81989c633c3afb3fc6aa1f319c0c0d4d3871b' –

+0

太感谢你了! –

1

是的,你可以在本地回滚你的工作,然后在“力”推提交

git push --force 

使用它明智和谨慎!

+0

这是不是太晚了? –

+0

没有。您可以强制把你想要的一切随时.. – wargre

1
$ git commit -m "accidently committed"   
$ git reset HEAD~        
<< edit files as necessary >>      
$ git add ...           
$ git commit -c ORIG_HEAD