我的 pre-commit
钩子(Hook)中有一些测试,需要先前提交的哈希值才能工作。
我所说的上一次提交是指将成为当前正在创建的提交的父提交的提交。
通常,我可以使用git rev-parse HEAD
。
但是,在 --amend
提交期间,HEAD
指向将被删除和替换的提交,所以我真正需要的是 HEAD^
.
我也有点担心 rebase 。 我不知道接下来会发生什么奇怪的事情。
如何在 pre-commit
Hook 中可靠地获取父提交的哈希值(如所述)?
最佳答案
我能得到的最接近的是事后在重写后 Hook 中检测它。
在代码中,在 Git 甚至确定父级之前就调用了预提交。这对我来说看起来很随意,the prepare_to_commit
call可以向下移动一段,并且父级作为钩子(Hook)参数传递,而不会破坏向后兼容性,除了一些“为什么你会这样做”的情况之外,但这不是现在的工作方式。
无论如何,真正的执行需要在发布存储库的预接收中完成,如果在重写后检测到错误并向那里的用户提示,也许重置 --soft'ing 回到原始状态以撤消改变,不会为你做这件事,也许写下你在这里真正做的事情的描述,然后一个补丁或一个帮助我的信就可以改变它。
关于git - 在预提交 Hook 中,查找正在创建的提交的父级的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73092034/