我希望使用git树对象中使用的哈希来唯一标识git下子目录的状态,特别是作为构建避免的工件库的索引。类似这样:
# Get hash for source tree in <path-do-dir>/<dir-name>
git cat-file -p HEAD^{tree}:<path-to-dir> | awk '$4 == "<dir-name>" { print $3 }'
我的问题是这些哈希值是否真正持久。朴素的实验表明它有效,但我想知道是否有人真正这样做。
^{tree}
实际上对您没有任何帮助。git rev-parse HEAD:<path-to-dir>/<dir-name>
e.g.:
$ git cat-file -p HEAD:t | awk '$4 == "t9604" { print $3 }'
846893f0b08b1fa03a6383c9a4deade32c16e929
$ git rev-parse HEAD:t/t9604
846893f0b08b1fa03a6383c9a4deade32c16e929
t/t9604
是什么? - starbeamrainbowlabsgit cvsimport
的测试文件(实际上是输入文件)。因此,这只是一个方便的示例,以展示git rev-parse
提取树哈希ID的方法。 - toreksrc/bar/SomeDirectory
替换它吗? - starbeamrainbowlabsgit rev-parse
找到任何现有对象的哈希ID,只要该对象具有有效的名称<rev>:<path>
。 - torek