您的位置:首页 > 新闻 > 资讯 > 成为git砖家(9): git checkout <commit> <file> 的含义

成为git砖家(9): git checkout <commit> <file> 的含义

2025/1/3 11:01:36 来源:https://blog.csdn.net/baiyu33/article/details/140804603  浏览:    关键词:成为git砖家(9): git checkout <commit> <file> 的含义

文章目录

    • 1. 目的
    • 2. 官方文档解释
    • 3. Tower 的解释
    • 4. References

1. 目的

git checkout 命令承载了非常多的功能, 想要一次全弄懂,不太现实; 这次白鱼带领大家学习 git checkout <file> 的用法。

老规矩,先查看 git checkout 的文档 :

git help checkout --web

2. 官方文档解释

在这里插入图片描述
官方文档的解释很全面,但是也显得很罗嗦,我们先忽略 -f | --outrs | --theirs 等选项, 只关注 git checkout [<tree-ish>] <pathspec> 这个简单的模式:

  • [<tree-ish>]: 方括号 [] 表示说这是一个可选字段, -ish 意思是“像…一样”, tree-ish 意思是树状的,通常是一个 commit, 但是显然也可以是 HEAD, 或分支名字, 或 tag 名字。
  • <pathspec> 意思是路径

解释:

  1. -- 是可以省略的
  2. 当没有传入 <tree-ish> 时, 也就是 git checkout <pathspec> 这个模式下,是从 index(也就是 stage 区域)作为源,替换掉 working area 的内容。(绿色框)
  3. 当传入 <tree-ish> 时, 也就是 git checkout <commit> <pathspec> 这个模式下,是从 <commit> 取得每个文件的内容, 并且替换掉 index(也就是 stage 区域)和 working area 的内容。例如:
  • git checkout HEAD <file>: 回滚 working area 和 staging area 到当前分支最后一次 commit
  • git checkout b325c <file>: 回滚 working area 和 staging area 到 b325c 这次 commit

在这里插入图片描述

3. Tower 的解释

在这里插入图片描述

Another use case for “checkout” is when you want to restore an old revision of a file:

git checkout 8a7b201 index.html

If you specify “HEAD” as the revision, you will restore the last committed version of the file, effectively undoing any local changes that you current have in that file:

git checkout HEAD index.html

4. References

  • https://marklodato.github.io/visual-git-guide/index-zh-cn.html
  • https://www.git-tower.com/learn/git/commands/git-checkout/

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com