git-cat-file  - 提供资源库对象的内容或类型和大小信息

在GIT Pro中对该命令的介绍https://git-scm.com/docs/git-cat-file

概要

git cat-file (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv | --filters ) [--path=<path>] <object>
git cat-file (--batch | --batch-check) [ --textconv | --filters ] [--follow-symlinks]

在第一种形式中,该命令提供存储库中对象的内容或类型。除非使用-t或-p查找对象类型,或者使用-s查找对象大小,或者使用--textconv或--filters(暗示类型为“ blob”),否则<type>是必需的,type的值可以是 blob, tree, commit, tag。

例子如下:

我们查看本地仓库里的一个object文件:这个文件的SHA-1的值是08fe2720d8e3fe3a5f81fbb289bc4c7a522f13da,其前2位是文件夹名称,后38位是文件名称

我们直接通过 git cat-file 08fe2720d8e3fe3a5f81fbb289bc4c7a522f13da命令查看,是不行的,因为需要type指定文件类型

如果我们通过git cat-file blob 08fe2720d8e3fe3a5f81fbb289bc4c7a522f13da来查看文件内容,就可以看到文件内容是first line

我们通过git cat-file -p 08fe2720d8e3fe3a5f81fbb289bc4c7a522f13da方式也是可以的

yaosht@yaosht-PC MINGW64 ~/gitclient/.git/objects/08 (GIT_DIR!)
$ ll
total 1
-r--r--r-- 1 yaosht 197121 27  1月 18 12:33 fe2720d8e3fe3a5f81fbb289bc4c7a522f13dayaosht@yaosht-PC MINGW64 ~/gitclient/.git/objects/08 (GIT_DIR!)
$ git cat-file 08fe2720d8e3fe3a5f81fbb289bc4c7a522f13da
usage: git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>or: git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --filters]<type> can be one of: blob, tree, commit, tag-t                    show object type-s                    show object size-e                    exit with zero when there's no error-p                    pretty-print object's content--textconv            for blob objects, run textconv on object's content--filters             for blob objects, run filters on object's content--path <blob>         use a specific path for --textconv/--filters--allow-unknown-type  allow -s and -t to work with broken/corrupt objects--buffer              buffer --batch output--batch[=<format>]    show info and content of objects fed from the standard input--batch-check[=<format>]show info about objects fed from the standard input--follow-symlinks     follow in-tree symlinks (used with --batch or --batch-check)--batch-all-objects   show all objects with --batch or --batch-check--unordered           do not order --batch-all-objects outputyaosht@yaosht-PC MINGW64 ~/gitclient/.git/objects/08 (GIT_DIR!)
$ git cat-file blob 08fe2720d8e3fe3a5f81fbb289bc4c7a522f13da
first lineyaosht@yaosht-PC MINGW64 ~/gitclient/.git/objects/08 (GIT_DIR!)
$ git cat-file -p 08fe2720d8e3fe3a5f81fbb289bc4c7a522f13da
first line

在第二种形式中,在stdin上提供了一个对象列表(由换行分隔),每个对象的SHA-1,类型和大小都打印在stdout上。 可以使用可选的<format>参数覆盖输出格式。 如果指定了--textconv或--filters,则输入需要列出对象名称,后跟路径名称,并用一个空格分隔,以便可以确定适当的驱动程序。(目前没有搞明白这个怎么用,等以后实际使用的时候再细细研究)

选项

<object> 要显示的对象的名称。有关拼写对象名称的更完整列表,请参阅 gitrevisions [7] 中的“指定修订”部分。-t 显示由<object>标识的对象类型而不是内容。-s 显示由<object>标识的对象大小,而不是内容。-e 控制所有输出; 如果<object>存在并且是有效的对象,则返回零状态。-p 基于其类型 Pretty-print(漂亮地打印)<object>的内容。

参考https://www.php.cn/manual/view/35095.html

https://git-scm.com/docs/git-cat-file

GIT底层命令之git cat-file相关推荐

  1. git常用命令之git push使用说明

    详细的命令使用说明,请参考点击打开链接 Git push命令用于将本地分支的更新,推送到远程主机.它的格式与git pull命令相仿. $ git push <远程主机名> <本地分 ...

  2. git pull命令操作 git pull <remote> <branch>

    git pull命令操作 git pull <remote> <branch> git pull <remote> <branch> 解决1: git ...

  3. Git常用命令和Git团队使用规范指南

    1. 前言 在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品--Git.它的出现改变了软件开发流程,大大地提高了开发流畅度,直到现在仍十分流行,完全没有衰退 ...

  4. git status 命令总结 —— Git 学习笔记 06

    当执行 git status 的时候,返回结果大致可分为3个部分: 拟提交的变更:这是已经放入暂存区,准备使用 git commit 命令提交的变更 未暂存的变更:这是工作目录和暂存区快照之间存在差异 ...

  5. Git常用命令(Git常用命令)

    1. 配置user信息: git config --global user.name "your_name"     git config --global user.email ...

  6. Git常用命令与Git for windows solarized主题配置

    近来学习了git的相关应用,由于不是很上心,拖拖拉拉地学了将近半个月的时间,在差不多学成后,回头来总结一下这段时间的学习. git安装 创建版本库 工作区与暂存区 远程仓库 分支管理 常用命令 其他 ...

  7. git 常用命令之 git branch

    大家好,我是 17. 新建 git 分支 分支是并行开发的基础.分支名称的本质是对分支最后一个提交的引用.分支有多个,但 HEAD 只有一个,可以认为 HEAD 是"current bran ...

  8. git config命令和Git配置文件

    执行下面这个命令:如果是Linux将打开 /工作区目录/.git/config文件, 如果是Windows:与Linux一样 git config -e(打开版本库级别配置文件) 执行下面这个命令:如 ...

  9. 为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)

    写在前面 最近发现很多小伙伴对于工作中的一些基本工具的使用还不是很了解,比如:Git这个分布式的代码管理仓库,很多小伙伴就不是很了解,或者说不是很熟悉.甚至有些小伙伴都没听说过Git,就只会用个SVN ...

最新文章

  1. Javascript基础与面向对象基础~第六讲 Javascript中的事件机制
  2. 将oracle select * from all_tab_comments where comments like ‘%XXXX%‘查询结果转为select语句
  3. 青少年蓝桥杯_2020_steam考试_初级组_第一题
  4. 27.垃圾收集器(Serial收集器、ParNew收集器、Parallel收集器、Parallel Old 收集器、CMS收集器、G1收集器、常用的收集器组合)
  5. 大促场景下云通信高可用、稳定性实战
  6. Windows MobileCE 开发书籍大全
  7. 夜间工作致癌的原因被发现:熬夜破坏了癌症相关基因的节律,导致DNA损伤增加、修复效率降低...
  8. 转:MSDN Visual系列:MOSS企业级搜索之一——在搜索中心里创建自定义搜索页面和标签选项卡...
  9. 仿hotmail收件人弹层: onkeyup事件无法捕获到回车按键, 用onkeydown事件捕获额外处理回车键...
  10. Java同步组件之CountDownLatch,Semaphore
  11. webpack路径问题总结
  12. mybaties中的selectKey和useGeneratedKeys=true
  13. 设置无效,为什么下载分数经常变化?
  14. java反编译工具(XJad)
  15. 英文名称(缩写)汇总
  16. infohash转换磁力 php,磁力链接或 infohash 如何转换成 torrent
  17. 基于asp.net742自驾游旅游服务网站的设计
  18. 家用监控摄像机录制视频上的时间水印有什么用
  19. GPT模型介绍并且使用pytorch实现一个小型GPT中文闲聊系统
  20. 数据库系统概论——绪论——1.1 数据库系统概述

热门文章

  1. 狗屎一样的代码!快,重构我!
  2. 婚纱表白html,最感人的求婚告白简短2019
  3. 如何把手机上的B站视频导入电脑观看:使用 FFmpeg(bilibili视频m4s合成mp4)
  4. Speedoffice(Excel)中如何添加页眉页脚
  5. 技术分享:微信小程序音视频与WebRTC互通的技术思路和实践
  6. 2022 年将遵循的 9 大区块链技术趋势
  7. 音、视频编码格式介绍
  8. 苹果se2_小米学习苹果?即将发布小屏手机,卢伟冰微博喊话网友|卢伟冰|手机|iphone|安卓手机...
  9. 抖音随拍在哪里选音乐,抖音随怕怎么配音乐
  10. quartus仿真综合警告汇总 持续更新...