有三种情况:
1.没有执行 git add的:可以用命令 ,
git checkout -- filepathname(eg: git checkout -- test.md)
如果是放弃所有,直接执行
git checkout .
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。
2.已经执行git add缓存了的:可以用命令
git reset HEAD filepathname (比如: git reset HEAD readme.md)
同样放弃所有就是
git reset HEAD .
执行完此命令后,文件状态就回归到第一种情况了,此时再按照情况1处理。
3.已经用 git commit 提交了的:可以用命令
git reset --hard HEAD^
回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid