如何在git中取消我的最后一次提交?
它是
git reset --hard HEAD
or
git reset --hard HEAD^
?
如何在git中取消我的最后一次提交?
它是
git reset --hard HEAD
or
git reset --hard HEAD^
?
当前回答
如果您提交了错误的分支
在错误的树枝上:
Git log -2给出了2次最后提交的哈希值,比如$prev和$last Git checkout $prev checkout正确提交 Git checkout -b new-feature-branch为该特性创建一个新分支 Git选择$last补丁与您的更改分支
然后,您可以按照上面建议的方法之一从第一个分支中删除提交。
其他回答
如果您提交了错误的分支
在错误的树枝上:
Git log -2给出了2次最后提交的哈希值,比如$prev和$last Git checkout $prev checkout正确提交 Git checkout -b new-feature-branch为该特性创建一个新分支 Git选择$last补丁与您的更改分支
然后,您可以按照上面建议的方法之一从第一个分支中删除提交。
小心!重置-硬将删除您的本地(未提交)修改,太。
git reset --hard HEAD^
注意:如果你是在窗口,你需要引用HEAD^ so
git reset --hard "HEAD^"
如果您想在不丢弃工作的情况下恢复提交,请使用——soft标志而不是——hard标志
git reset --soft HEAD^
以保留要撤消的提交中的更改
git reset --soft HEAD^
来销毁从要撤消的提交中所做的更改
git reset --hard HEAD^
你也可以说
git reset --soft HEAD~2
返回2次提交。
编辑:正如charsi提到的,如果你在Windows上,你将需要把HEAD或提交哈希在引号中。
git reset --soft "HEAD^"
git reset --soft "asdf"
小心点。
但是您可以使用rebase命令
git rebase -i HEAD~2
将打开一个vi,你所要做的就是删除提交的行。也可以阅读在适当的版本@ vi中显示的说明。在这种模式下可以执行一些事情。
如果您正在使用ZSH并看到错误,请注意
zsh: no matches found: HEAD^
您需要转义^
git reset --soft HEAD\^