前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >彻底知道git checkout filename 命令,首先你的知道git存储结构。

彻底知道git checkout filename 命令,首先你的知道git存储结构。

作者头像
zhangjiqun
发布2024-12-16 13:14:08
发布2024-12-16 13:14:08
6500
代码可运行
举报
文章被收录于专栏:计算机工具计算机工具
运行总次数:0
代码可运行
彻底知道git checkout filename 命令,

首先你的知道git存储结构。可以看看我的git存储结构:临时区,工作区、暂存区、本地仓库、远程仓库 :https://blog.csdn.net/qq_38998213

准备工作:

  • 新建了一个learngit文件夹,在bash中cd进入文件夹,用以下命令创建一个仓库。
代码语言:javascript
代码运行次数:0
运行
复制
$ 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 也没有过的时候
代码语言:javascript
代码运行次数:0
运行
复制
git rm --cached one.txt

    效果会是这样的:

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 彻底知道git checkout filename 命令,
  • 实验一:没有add,没有commit
  • 实验二:有add,但不commit
  • 实验三:add又commit
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档