1. git checkout -- file(README.txt)
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
2. git reset HEAD file
Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区,git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
3. git rm file
$ git rm test.txt // 删除test.txt文件
rm 'test.txt' // 删除test.txt文件成功
$ git commit -m "remove test.txt" // 提交这次删除操作,文件在工作区先删除了的。并命名操作为“remove test.txt”
[master d17efd8] remove test.txt // 【主分支 commit id】 操作名字和上面一样
1 file changed, 1 deletion(-) // 一个文件改编,一次删除(-)
delete mode 100644 test.txt // 删除模式 100644(创建的时候一样) test.txt文件
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。