2012-03-16 115 views
5

嗨,我想撤消我最后一次提交。我所做的是我对文件做了一些修改,然后我提交了它们,但我还没有将它们推送到主要的回购站点。混帐后提交-m“注释”命令我跑git的状态,我现在我要撤销我上次提交这样我怎么能做到这一点得到这个消息如何撤消提交

Your branch is ahead of 'origin/demo' by 1 commit 

+1

[这里已解决] [1] [1]: http://stackoverflow.com/questions/495345/git-removing-selected-commits-from-repository – 2012-03-16 13:11:44

回答

16

如果您想彻底取消它:

git reset --hard HEAD^ 

如果要撤消,并保持您的更改上演(前提交):

git reset --soft HEAD^ 

如果要撤消,并保持您的文件被修改(在阶段之前):

git reset --mixed HEAD^ 
+0

你能告诉我什么是头在这里?我应该使用你在这里输入的命令吗? – 2619 2012-03-16 13:17:55

+0

HEAD是一个文件,它总是引用当前分支上的最后一个提交,或者如果你签出了一个提交(在分离的HEAD状态下),它的值就是提交。是的,你应该使用命令,假设你没有切换分支等。 – ralphtheninja 2012-03-16 13:41:30

1

通过创建另一个提交来恢复您的提交(假设master是你的工作分支):

git revert master 

要取消它,也就是说,假装什么都没发生:

git reset --hard master~