2017-08-03 87 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