$ git add somefile.txt
$ TREE_HASH_PREDICTION=$(???)
$ git commit -m "some message"
$ TREE_HASH=$(git rev-parse HEAD^{tree})
假设提交不会触发任何添加更多文件或从暂存区域删除一些文件的 Hook ,我可以使用什么命令???这样 TREE_HASH_PREDICTION 将匹配 TREE_HASH?
注意:我不是在询问提交哈希,而是在提交中包含的树哈希
最佳答案
git write-tree
确保存在一个具有当前索引上下文的树对象(即暂存更改)并写出该对象的 ID。在此之后没有任何修改(即提交 Hook ),此树对象将是提交中使用的对象。
请注意,这实际上会在磁盘上创建包含该树内容的文件,这会消耗时间和 IO。但是使用的时间也应该在提交期间保存,因为它不必重新创建,如果您最终不提交更改,GC 可能最终会删除该树对象。
关于git:如何在提交之前获取下一次提交的树哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66266333/