`git ls-files -s` 输出中不同字段的含义是什么?
What is the meaning of the different fields in the output of `git ls-files -s`?
在Git中,命令git ls-files -s
返回结果的典型行看起来像
100755 be2c2e9b0966253096472d4b482c458bc892e493 0 .gitignore
这些字段是什么意思?
git ls-files
just outputs the filenames unless --stage
is specified
in which case it outputs:
[<tag> ]<mode> <object> <stage> <file>
(--stage
标志等同于 -s
。)
这些字段是什么意思?
<mode>
是模式位。 How to read the mode field of git-ls-tree's output 中有更多详细信息
<object>
是相应 blob 的 SHA,即相关文件 内容 的唯一标识符。
<stage>
是阶段编号,通常为 0
,但对于有合并冲突的文件采用非零值。
<file>
只是文件的路径。
你也问,在,
What's the relation between the <object>
and the <file>
?
它们是完全独立的,因为只有文件的内容(而不是它的 path/filename)用于生成与其关联的哈希。为了让自己相信这一点,您可以在玩具库中进行以下实验:
# Set things up
$ mkdir testgit
$ cd testgit/
$ git init
# Write the same contents to two files
$ printf "foo\n" > README.md
$ printf "foo\n" > bar.txt
# Stage the two files and run git ls-files
$ git add .
$ git ls-files -s
100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0 README.md
100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0 bar.txt
请注意,尽管这两个文件具有不同的名称,但它们具有相同的 SHA,因为它们具有相同的内容。
在Git中,命令git ls-files -s
返回结果的典型行看起来像
100755 be2c2e9b0966253096472d4b482c458bc892e493 0 .gitignore
这些字段是什么意思?
git ls-files
just outputs the filenames unless--stage
is specified in which case it outputs:[<tag> ]<mode> <object> <stage> <file>
(--stage
标志等同于 -s
。)
这些字段是什么意思?
<mode>
是模式位。 How to read the mode field of git-ls-tree's output 中有更多详细信息
<object>
是相应 blob 的 SHA,即相关文件 内容 的唯一标识符。<stage>
是阶段编号,通常为0
,但对于有合并冲突的文件采用非零值。<file>
只是文件的路径。
你也问,在
What's the relation between the
<object>
and the<file>
?
它们是完全独立的,因为只有文件的内容(而不是它的 path/filename)用于生成与其关联的哈希。为了让自己相信这一点,您可以在玩具库中进行以下实验:
# Set things up
$ mkdir testgit
$ cd testgit/
$ git init
# Write the same contents to two files
$ printf "foo\n" > README.md
$ printf "foo\n" > bar.txt
# Stage the two files and run git ls-files
$ git add .
$ git ls-files -s
100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0 README.md
100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0 bar.txt
请注意,尽管这两个文件具有不同的名称,但它们具有相同的 SHA,因为它们具有相同的内容。