Git入门(7)-撤销修改
当我们很累的时候,在readme.txt文件上多写了一行:
$ cat readme.txt Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage. Git tracks changes of files. My stupid boss still prefers SVN.
在你提交之前,你突然发现了这个问题,而是你想删掉最后一行。那就输入
$ git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
注意:git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
假如现在你已经把 readme.txt已经放到了(git add)暂存区,那么首先我们要版本回退一下,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。然后到了工作区了,用我们刚才学习的git checkout -- readme.txt命令来丢弃工作区的修改。