9

我想在树对象上附加一个注释。但是,为了做到这一点,我首先需要知道树对象的哈希值。对于作为我的存储库一部分的给定目录名称,我如何获取其所属树对象的哈希以便为其附加注释?

通过阅读这个答案,我知道我可以使用

git cat-file -p master^{tree}

列出根树的内容,但我仍然必须 grep 目录名称的输出,并递归地遵循嵌套树对象以获取树对象的哈希,以获取层次结构中更深的目录。

基本上,我正在寻找一个虚构get-tree-hash.sh脚本的实现。如果像这样调用

get-tree-hash.sh path/to/directory/in/my/git/repo

它应该输出

The hash for the "repo" tree inside "path/to/directory/in/my/git" is:
92a68a2f5560fa7080393b633e2afd1d5271deef
4

2 回答 2

11

你可以做:

git rev-parse HEAD:path/to/directory/in/my/git

仅打印哈希。所以你不需要cutawk提取它。

于 2018-10-05T00:52:57.633 回答
6

自己想通了,

git ls-tree HEAD -- path/to/directory/in/my/git | cut -d' ' -f3 | cut -f1

做我想做的事。

于 2016-03-23T14:39:15.107 回答