HEAD更改时的Git挂钩

Bud*_*nWA 6 git githooks

我的目标是使用当前的HEAD提交哈希,分支和其他一些细节使(未跟踪的)文件保持最新.我有一个工作的git post-checkout钩子来更新文件,但是我希望无论何时HEAD更改都要运行钩子,无论是通过提交,合并还是其他任何可能的方法.

什么是确保我的钩子在HEAD改变时运行的最简单方法?

细节

我生成的文件是一个javascript文件,它是静态服务的网站的一部分.我们不依赖于服务器端脚本,因此我们希望避免这种依赖.

应该运行的脚本如下:

#!/bin/sh

FILE=js/git-status.js

echo "// This file is autogenerated by a post-checkout hook. Your changes here WILL be lost." > $FILE

echo "GIT_BRANCH = '$(git rev-parse --abbrev-ref HEAD)';" >> $FILE
echo "GIT_COMMIT_HASH = '$(git rev-parse HEAD)';" >> $FILE
echo "GIT_COMMIT_TIME = '$(git log -1 -s --format=%ci HEAD)';"  >> $FILE

echo "Updated $FILE"
Run Code Online (Sandbox Code Playgroud)

虽然我可以采取另一种方法,但我仍然希望得到原始问题的答案.

Bud*_*nWA 2

看起来这可能是不可能的(尽管请证明我是错的),所以我已经解决了这个足够好的方法:我从多个钩子触发脚本,这意味着它将在大部分时间运行。

这些是我正在使用的钩子:

  • 结账后
  • 提交后
  • 合并后
  • 变基后