已亲测,如有问题可留言-----------------------------------------------
1、修改但没有add的文件,进行丢弃:执行 git checkout ./
2、已经add的文件,进行丢弃:执行git restore —staged 修改的文件(路径) && git checkout ./ 或者 git rm --cached xxx文件名xxx git rm
3、已经commit的文件,进行丢弃:执行 git reset --soft HEAD^ && git restore —staged 修改的文件(路径) && git checkout ./
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
如果commit注释写错了,只是想改一下注释,只需要:git commit —amend,此时会进入默认vim编辑器,修改注释完毕后保存就好了。
git log 查看所有的commit提交记录;
Git reflog 查看提交记录,包含提交分支、撤回和修改的提交记录,比git log更全面;
git show 查看提交的详情;
4、已经push到远程的,进行丢弃或回退:
执行 git reset --soft HEAD^ && git restore —staged 修改的文件(路径) && git checkout ./
注:当然每种丢弃或者撤回还有其他不同情况和方法,大家可以根据自己遇到的具体情况进行方法选择