撤销修改
当你不小心改错了readme.txt
文件。如下:
可以使用checkout -- <file>
命令撤销修改:
命令git checkout -- readme.txt
意思就是把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
如果修改后又 git add
到暂存区了:
Git告诉我们使用git reset HEAD <file>
可以把暂存区的修改撤销掉(unstage)
,重新放回工作区:
再用git status
查看一下:
发现可以使用git checkout -- <file>
了。
如果既添加到了暂存区,又提交到本地仓库,可以使用git reset HEAD^
版本回退到上一个版本。如果你push
到了远程仓库,那就完蛋了。
小结
-
当我们修改了工作区的某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- <file>
。 -
当我们修改了工作区的某个文件的内容,又把这个文件添加
git add <file>
到了暂存区,这时候可以使用git reset HEAD <file>
,就回到了add
前的状态,这时候还是使用git checkout -- <file>
来撤销修改。 -
当我们修改了工作区的某个文件的内容,又把这个文件添加
git add <file>
到了暂存区,还把这个文件提交git commit -am "备注"
到本地仓库了,这时候可以使用版本回退git reset HEAD^
,回退到上个版本。