- 未进行任何提交,即文件更改在工作区
1 # filename 对应进行操作的文件名 2 git checkout -- filename
- 已用git add 命令提交,即文件更改在暂存区
1 # 舍弃暂存区的修改,即回到第1种情况
2 git reset HEAD filename
3 # 舍弃所有更改
4 git reset --hard HEAD - 已用git add 和git commit 提交,即文件更改在分支
1 #完全舍弃最后一次更改 2 git reset --hard HEAD^ 3 #舍弃更改至缓存区,即回到第2种情况 4 git reset --soft HEAD^ 5 #舍弃更改至工作区,即回到第1种情况 6 git reset HEAD^ 即 git reset --mixed HEAD^
更新:
- 如果需要删除文件
1 git rm filename #删除所有 2 git rm --cached filename #仅在工作区保留