问题背景
已经git commit,但发现有部分代码未提交,想撤销这次commit 重新提交。且保留已经commit的代码
解决方法
git reset --soft HEAD^
注意:上述命令仅撤销上次提交的commit
如果想撤销至更早的commit,可按如下操作:
git reset --soft commit id
扩展
–git reset soft
git reset --soft <提交>:这个选项会将 HEAD 移动到指定的提交,但保留提交之后的更改暂存,使你可以重新提交这些更改。
git reset --soft HEAD~2 # 将HEAD移动2个提交前,保留更改
–git reset mixed
git reset --mixed <提交>:这个选项会将 HEAD 移动到指定的提交,并取消暂存区的更改,但保留这些更改在你的工作目录中。
git reset --mixed HEAD~2 # 将HEAD移动2个提交前,取消暂存,但保留在工作目录中
–git reset hard
git reset --hard <提交>:这个选项将 HEAD 移动到指定的提交,并丢弃暂存区和工作目录中的更改,慎用,因为它会永久性地删除未提交的更改。
git reset --hard HEAD~2 # 将HEAD移动2个提交前,丢弃所有更改
友情提示
git reset 可以对项目的历史记录产生重大影响,因此在使用之前请确保理解其影响,特别是在与远程仓库协同工作时。