什么`cat-file`代表git?

Jos*_*ers 2 git

在git中,cat-file这个命令代表什么?

$ git cat-file <...>
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是"连接文件"因为Unix命令cat代表"连接",但这并不对应于函数git cat-file.

Mat*_*eil 8

读取git对象的内容(或blob)

git cat-file -p <SHA1>
Run Code Online (Sandbox Code Playgroud)

阅读其类型

git cat-file -t <SHA1>
Run Code Online (Sandbox Code Playgroud)


Wil*_*ill 6

虽然cat确实代表“连接”,但实际上只是按照它们在命令行参数中出现的顺序显示一个或多个文件cat。在Linux或* nix系统上查看文件内容的常见模式是:

cat <file>
Run Code Online (Sandbox Code Playgroud)

cat和Git的主要区别在于cat-file,它仅显示一个文件(因此显示该-file部分)。Git cat-file并不真正代表“连接”。它只是对cat命令行为的引用。

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

从技术上讲,git cat-file如果使用“批输出”模式,则可以用来连接文件:

批输出

如果给出--batch--batch-checkcat-file将从stdin中读取对象,每行读取一个对象,并打印有关它们的信息。默认情况下,将整行视为对象,就像将其馈送到git-rev-parse[1]一样。