Git--版本控制(三)撤销修改,删除文件

  • 上一章讲到了版本回退,我们继续来讲解check out等操作。

  • 在third.txt文件中增加文本,并add。

Git--版本控制(三)撤销修改,删除文件_第1张图片
Paste_Image.png
Git--版本控制(三)撤销修改,删除文件_第2张图片
Paste_Image.png
  • 此时,我们对third进行了修改,但我们并未commit所以并不会影响到版本库,这时如果我们并不小心删除了I am fouth,应该如何做? 之前提到的checkout就是很好的解决方案。
Git--版本控制(三)撤销修改,删除文件_第3张图片
Paste_Image.png
  • 这时你可以发现,Git会告诉你,git checkout -- file可以丢弃工作区的修改:
Paste_Image.png
Git--版本控制(三)撤销修改,删除文件_第4张图片
Paste_Image.png
  • 此时你可以发现,I am fouth又回来了。
Git--版本控制(三)撤销修改,删除文件_第5张图片
Paste_Image.png

命令git checkout -- third.txt意思就是,把third.txt文件在工作区的修改全部撤销,这里有两种情况:

  • 一种是third.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

  • 一种是third.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令

用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:

  • 我们同样可以使用git reset HEAD file进行撤销,我们会回退到我们工作区(电脑磁盘当前仓库)现在的状态,清空之前所有对此文件的操作。
Paste_Image.png
Git--版本控制(三)撤销修改,删除文件_第6张图片
Paste_Image.png

删除文件

在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件fouth.txt到Git并且提交:

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:
git rm fouth.txt

Git--版本控制(三)撤销修改,删除文件_第7张图片
Paste_Image.png

如果你确实需要从版本库里删除此文件,你需要commit

Paste_Image.png

如果你是误删,你则不要commit,而使用checkout 找回。

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- fouth.txt

Git--版本控制(三)撤销修改,删除文件_第8张图片
Paste_Image.png
Git--版本控制(三)撤销修改,删除文件_第9张图片
Paste_Image.png

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。


Git--版本控制(三)撤销修改,删除文件_第10张图片
Paste_Image.png
Git--版本控制(三)撤销修改,删除文件_第11张图片
Paste_Image.png

你可能感兴趣的:(Git--版本控制(三)撤销修改,删除文件)