之前,我们讲过了Git管理修改的方法。本文我们将讲述如何撤销文件的修改,或者需要删除文件。
撤销修改
现在我们的learning.txt文件如下:
I love coding,especially python.
Hello world!
I have a wonderful girl.
She is pretty.
Wa haha
我们将最后一行Wa haha删掉,之后却发现这一行我们不应该删掉。如果此时文件已经保存,那么直接选择撤回的操作是不行的,这是Git就派上用处了。我们使用git status
来查看一下状态。
发现,虽然没有将更改add或者commit进去,但是Git还是知道了我们对文件有所修改。并且非常贴心的告诉了我们可以使用git checkout --
来丢弃我们的修改。也就是如下代码:
$ git checkout -- learning.txt
git checkout --
只能把文件恢复到上一次add或者commit的状态。那如果你改了文件,并且已经传到了Stage暂存区中,那么此时使用checkout就不行了。
假设我们现在又删了最后一行,并且已经add到暂存区了,我们再次使用git status
来查看状态。
发现Git依然很贴心的告诉了我们,使用git reset HEAD
可以将add操作撤销,也就是说重新放回工作区中。接下来,就变成之前讲过的了,只需要使用checkout语句可以撤销修改。
总结
- 如果我们只是在工作区有所修改,那么只需要使用checkout语句即可;
- 如果我们修改了之后,还上传到了暂存区中那么就需要先使用
git reset
语句,将修改退回到工作区,之后在按照1操作即可。 - 如果文件已经commit上去了,可以参看前文的版本回退。
删除文件
首先,我们在工作区中新建一个文件remove.txt。之后将其提交上去。
在文件使用完毕之后,一般我们都会在为你文件夹中将文件删除,当然也可以通过rm命令删除,也就是:
$ rm remove.txt
在删除文件之后,如果我们真的要删除文件,那么就需要从版本库中删除。使用git rm
命令,然后git commit
就可以了。
如果说我们是错删了文件,那么用git checkout
就可以将其找回。
$ git checkout -- remove.txt
不管是删除还是修改,checkout语句都可以将其退回到上次add或者commit的状态。