//将工作区的a.txt文件更新到最后一次提交到本地仓库的状态,如果需要将文件回滚到某个特定的版本,将HEAD改成那个commit的id即可
git checkout HEAD a.txt
//如果将a.txt文件添加到了暂存区,然后又不想添加到暂存区了,使用下面命令;该命令不会重置a.txt文件所作的修改,它只是将文件从暂存区删除,使用commit提交的时候,不在暂存区的文件不会被提交到本地仓库
git reset HEAD a.txt
diff命令比较文件差异
//比较暂存区a.txt文件和工作区的a.txt文件的区别
git diff a.txt
git diff命令是比较暂存区和工作区文件的区别
版本回滚命令checkout HEAD和checkout --的区别
//checkout HEAD 和checkout --都可以将文件回滚,举例说明它们的区别
1,如果a.txt文件做了修改但是还没有添加到暂存区,这个时候你要回滚到上一个提交的版本状态,可以用checkout HEAD 也可以用checkout --,效果是一样的
//git checkout HEAD a.txt or git checkout --a.txt
2,如果a.txt文件做了修改且已添加到暂存区,现在想放弃之前做的修改,如果使用git checkout -- a.txt命令会没有任何效果,这个时候必须得用git checkout HEAD a.txt
3,如果a.txt文件添加到暂存区后又作了修改,使用git checkout -- a.txt可以回退到上一个add操作时的状态
总结:git checkout -- filename 撤销当前修改回退到上一个操作的状态,可能是commit也可能是add的状态,而checkout HEAD就是最后一次提交的状态