如果我执行root:root
或git pull
,则用户和组始终更改为git checkout
因此,我创建了具有以下内容的文件.git/hooks/post-merge
:
#!/bin/sh
chown -R mycompany:www /srv/www/vhosts/mycompany
exec git-update-server-info
文件具有执行权限
但是它不起作用,在调用git pull
之后没有任何变化。
答案 0 :(得分:1)
首先要检查:您的钩子是否可执行?
为in this example:
运行
chmod +x post-merge
以使其可执行,然后将其放入.git/hooks/
。
然后在其中至少添加一个回显,以检查它是否已执行。
请注意,挂钩仅在成功合并后才运行,这意味着如果拉动导致快进合并(HEAD移动,无需实际合并),挂钩将不会运行。
另一种选择是尝试并use setuid/setgid强制以正确的用户身份运行(Git,作为根用户)(前提:chown为这些文件设置正确的用户/组)
>