git pull后更改项目中所有文件的用户和组

时间:2019-03-06 12:19:41

标签: git hook

如果我执行root:rootgit pull,则用户和组始终更改为git checkout

因此,我创建了具有以下内容的文件.git/hooks/post-merge

#!/bin/sh

chown -R mycompany:www /srv/www/vhosts/mycompany

exec git-update-server-info

文件具有执行权限

但是它不起作用,在调用git pull之后没有任何变化。

1 个答案:

答案 0 :(得分:1)

首先要检查:您的钩子是否可执行?
in this example

  

运行chmod +x post-merge以使其可执行,然后将其放入.git/hooks/

然后在其中至少添加一个回显,以检查它是否已执行。

请注意,挂钩仅在成功合并后才运行,这意味着如果拉动导致快进合并(HEAD移动,无需实际合并),挂钩将不会运行。

另一种选择是尝试并use setuid/setgid强制以正确的用户身份运行(Git,作为根用户)(前提:chown为这些文件设置正确的用户/组) >