Git post-receive 钩子和环境变量

Łuk*_*oda 6 git environment-variables git-post-receive

我有 git 服务器在Gitolite上运行,在“git”系统用户下。我添加到 git user: 的 ~/.profile 中export STAGE_PATH="/srv/http/stage",正如你可以猜到的,我想在推送更改时自动将存储库中的网站放在舞台上。然而,似乎变量 STAGE_PATH 在接收后挂钩中对我不可用。正常吗?有没有办法从 post-receive 挂钩访问环境变量?

Wes*_*ker 1

添加怎么样?~git/.profile 位于接收后挂钩脚本的顶部(假设它是 sh)。

但目前尚不清楚您到底想要什么。您要么想要:

1)只是为了推送到外部点,而不关心存储库之间的通用性。在这种情况下,为什么需要其他地方的环境变量?为什么不将最终位置放在接收后挂钩脚本本身中?

2)您想要有一些外部变量来控制您要将许多不同的存储库推送到的位置的根,如果您需要更改它,最好将该位置编码为单个变量。如果是这样的话,那么您上面所做的事情就有意义了。但您不一定需要首先在 .profile 中执行此操作。显然 git 在运行脚本之前会为你清理环境。因此,您应该改为获取包含参数的外部文件(尽管我反对为此使用 .profile)。