如何获取给定目录名的树形哈希?

时间:2016-03-23 14:31:31

标签: git git-notes

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

从阅读this answer我知道我可以使用

.java

列出根树的内容,但是我仍然需要grep目录名的输出,并递归地遵循嵌套的树对象来获取目标的树对象的哈希值更深层次的。

基本上,我正在寻找虚构的git cat-file -p master^{tree} 脚本的实现。如果被称为

get-tree-hash.sh

应该输出

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

2 个答案:

答案 0 :(得分:6)

您可以这样做:

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

仅打印哈希。因此,您不需要cutawk来提取它。

答案 1 :(得分:5)

我自己想出来了,

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

做我想要的。