获取git个钩子事件信息

Obtain git hook event information

在 git 挂钩中,设置环境变量以提供触发挂钩的事件信息。访问环境变量以获得正确的提交信息工作正常,除非降级到 git 1.7.1,它不提供所有 git 环境变量。

您应该知道所有 git 存储库中都可以有挂钩。因此,您可以在本地 git 存储库和远程存储库中都有挂钩。

post-commit 挂钩的情况下,我们通常谈论的是本地存储库,当您进行本地提交时,您希望在其中执行某些操作。目前还不清楚竞争条件是如何在这里发生的。

1) 每个提交都嵌入了前一个提交的哈希值。所以提交的顺序总是定义明确的。多个提交无法竞争位置。

2) 是的。参见 http://git-scm.com/docs/githooks。不同的钩子接收不同的信息。但是 post-commit 没有任何参数。

3) 钩子真正在你的本地机器上执行,所以你可以在你的本地机器上使用环境变量。

4) 你得把代码写在钩子里。 .git/hooks 目录中有示例。

解决方案是从 1.7.1 升级 git。这可能看起来像是一个简单的疏忽,但这是正确的。看起来 1.7.1 以与 1.7 相同的方式添加了功能。第二名和第三名的数字位置显然没有明确的含义。对于我的情况,升级到 1.7.6 解决了这个问题。

我希望这些信息对其他编写 git-hooks 的人有所帮助。