git:如何在提交之前获取下一次提交的树哈希?

标签 git

$ 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/

相关文章:

python - pipenv ssh + git在不可编辑模式下不起作用

git 和 git-svn 和多个分支以及推送和获取

html - 旧的 HTML/CSS 文件没有在 GitHub 上用 git push 更新

git - 由于 SSL_ERROR_SYSCALL,无法推送到 github

git - 为什么 ssh-agent 需要 root 权限?

通过 ssh 克隆 Git,通过 https 推送

git - 如何聚合提交之间的代码更改

找不到 Git 命令。请创建别名或将其添加到您的 PATH

git - 可以信任第三方主机进行闭源/私有(private)源代码管理吗?

git - 在 git 中记录前 10 个