撤销修改
首先我们修改一下ReadMe.txt
码上加油站,一起来加油学习git版本控制~撤销修改
然后操作git status查看一下文件状态:
丢弃工作区的修改:
git checkout -- file可以丢弃工作区的修改:
git checkout -- ReadMe.txt
命令git checkout -- ReadMe.txt说明:
把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
- 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
- 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
暂存区的修改撤销掉(unstage),重新放回工作区:
命令:
git reset HEAD <file>
说明:git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
总结:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
删除文件
首先添加一个test.txt文件到git并且提交上去:
一般情况我们之间在文件夹下删除文件,这个时候,git知道你删除了文件,但是工作区和版本库不一致了,使用git status命令查看:
两种情况:
一:要删除此文件,使用git rm命令,并且commit:
$ git rm test.txt
$ git commit -m "remove test.txt"
现在文件就从库中删除了
二:误删了,把误删的文件恢复到最新版本
git checkout -- test.txt
说明:git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!