Git 基础再学习之:git checkout -- file

首先明白一下基本概念和用法,这段话是从前在看廖雪峰的git教程的时候摘到OneNote的git

 

准备工做:bash

  • 新建了一个learngit文件夹,在bash中cd进入文件夹,用如下命令建立一个仓库。
$ git init
  • 添加一个文本文件one.txt,里面写个内容 "one"。准备工做完成。文件夹状况以下:

   

 

 

实验开始:spa

实验一:没有add,没有commit

  • 此时不对文件作任何提交,用git status 查看一下文件状态:

    

    说明是彻底没有 git add 的code

  • 进入文件夹,把文本文件 one.txt 中的内容加一行 “Two”。
  • 回到bash窗口,尝试用 git checkout -- file 命令恢复状态,结果报错:

    

    说明没有add,还想checkout,没有什么意义可言,由于既不在暂存区,也没有提交,因此就没有所谓的恢复blog

 

实验二:有add,但不commit

  • 用 git add 把 文本文件添加到暂存区:

    

  • 进入文件夹,把文本文件 one.txt 中的内容加一行 “Two”。
  • 回到bash窗口,尝试用 git checkout -- file 命令恢复状态,啥也没报。Unix哲学是没有状况就是好状况。
  • 打开 one.txt ,发现添加的那一行没了,内容中又只剩下 "One"

 

实验三:add又commit

  • 确认一下:如今文本文件中内容是一行 "One",由于以前已经 add 过了,因此先用以下命令让状态恢复到连 add 也没有过的时候
git rm --cached one.txt

    效果会是这样的:教程

    

    好,又恢复到了没有add的状况。get

  • 而后咱们从头开始 - -。。。其实我也不知道为啥要这样,感受和前面步骤相同比较好一点。。
  • 用 git add 添加,而后用 git commit 提交,结果以下:成功提交

    

   这时候,文本文件中只有一行"One",it

  • 进入文件夹,把文本文件 one.txt 中的内容加一行 “Two”。出现以下界面(说明修改过了)

    

  • 回到bash窗口,尝试用 git checkout -- file 命令恢复状态,啥也没报。Unix哲学是没有状况就是好状况。
  • 打开 one.txt ,发现添加的那一行没了,内容中又只剩下 "One"

结论:必需要先add才存在恢复一说。 checkout 能够理解为“切回某个文件”的意思。可是要注意,这个命令是对工做区生效的。class

相关文章
相关标签/搜索