ric*_*ard 819 git undo git-reset git-index
我如何取消承诺我在git中的最后一次提交?
是吗
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
要么
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
?
Cas*_*bel 1303
如果您不完全确定"uncommit"的含义并且不知道是否要使用git reset,请参阅" 恢复到之前的Git提交 ".
如果你想要git reset更好地理解,请参阅" 你能解释一下"git reset"用简单的英语做什么吗? ".
如果你知道你想要使用git reset它,它仍然取决于你的意思"uncommit".如果您要做的就是撤消提交行为,保留其他所有内容,请使用:
git reset --soft HEAD^
Run Code Online (Sandbox Code Playgroud)
如果你想要撤消提交行为和你上演的所有内容,但是保留工作树(你的文件完好无损):
git reset HEAD^
Run Code Online (Sandbox Code Playgroud)
如果您确实要完全撤消它,丢弃所有未提交的更改,将所有内容重置为上一次提交(如原始问题所示):
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
最初的问题也问HEAD^不是HEAD.HEAD指当前提交 - 通常是当前签出分支的提示.这^是一个可以附加到任何提交说明符的表示法,意思是"之前的提交".因此,HEAD^是在当前提交之前的提交,就像master^在主分支的提示之前提交一样.
这是git-rev-parse文档的一部分,描述了指定提交的所有方法(^只是许多方法中的基本方法).
Ale*_*x K 297
保持要撤消的提交的更改
git reset --soft HEAD^
Run Code Online (Sandbox Code Playgroud)
从要撤消的提交中销毁更改
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
你也可以说
git reset --soft HEAD~2
Run Code Online (Sandbox Code Playgroud)
回去2次提交.
编辑:正如charsi所提到的,如果您在Windows上,则需要将HEAD或哈希引用到引号中.
git reset --soft "HEAD^"
git reset --soft "asdf"
Run Code Online (Sandbox Code Playgroud)
nfm*_*nfm 287
git reset --soft HEAD^ 将保留修改后的更改保存在您的工作树中.
git reset --hard HEAD^ 我们会改变你所做的改变!
tge*_*ros 60
小心,reset --hard也将删除您的本地(未提交)修改.
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
注意:如果你在Windows上,你需要引用HEAD ^所以
git reset --hard "HEAD^"
Run Code Online (Sandbox Code Playgroud)
dax*_*dax 26
只需注意 - 如果您使用ZSH并查看错误
zsh: no matches found: HEAD^
Run Code Online (Sandbox Code Playgroud)
你需要逃避 ^
git reset --soft HEAD\^
Run Code Online (Sandbox Code Playgroud)
小智 19
如果尚未推送更改,请使用git reset --soft [Hash for one commit]回滚到特定提交.--soft告诉git保持回滚的更改(即将文件标记为已修改).--hard告诉git删除正在回滚的更改.
小智 14
如果你犯了错误的分支
在错误的分支上:
git log -2给你的最后2所提交的哈希值,可以说$prev和$lastgit checkout $prev 结帐正确提交git checkout -b new-feature-branch 为功能创建一个新分支git cherry-pick $last 根据您的更改修补分支然后,您可以按照上面建议的方法从第一个分支中删除您的提交.
对此要小心。
但是你可以使用rebase命令
git rebase -i HEAD~2
Run Code Online (Sandbox Code Playgroud)
Avi将打开,您所要做的就是删除包含提交的行。还可以阅读正确版本@中显示的说明vi。在此模式下可以执行一些操作。
| 归档时间: |
|
| 查看次数: |
750085 次 |
| 最近记录: |