zoukankan      html  css  js  c++  java
  • Git 基础再学习之:git checkout -- file

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

    准备工作:

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

       

    实验开始:

    实验一:没有add,没有commit

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

        

        说明是完全没有 git add 的

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

        

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

    实验二:有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的情况。

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

        

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

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

        

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

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

  • 相关阅读:
    谷歌翻译插件
    WordPress资料收集,以后整理
    WordPress不同分类使用不同的文章模板
    禁用/移除WordPress页面的评论功能
    wordpress设置一个特定的页面作为首页
    wordpress主题之后台菜单编辑,小工具
    tinkcmf视频上传大小限制
    转:解决Onethink上传视频的问题 超棒的解决方案
    linux(centos) 下安装phpstudy 如何命令行进入mysql
    在 Mac OS X 10.9 搭建 Python3 科学计算环境
  • 原文地址:https://www.cnblogs.com/Calvino/p/5930656.html
Copyright © 2011-2022 走看看