git 拉取后更改项目中所有文件的用户和组
Change user and group of all files in project after git pull
如果我执行 git pull
或 git checkout
,用户和组总是更改为 root:root
所以我创建了包含以下内容的文件 .git/hooks/post-merge
:
#!/bin/sh
chown -R mycompany:www /srv/www/vhosts/mycompany
exec git-update-server-info
文件有执行权限
但是没有用,调用git pull
后没有任何变化。
首先要检查:您的挂钩是否可执行?
作为 in this example:
Run chmod +x post-merge
to make it executable then put it into .git/hooks/
.
然后在里面至少加一个echo,看看有没有执行。
请注意,挂钩只会在成功合并后 运行,这意味着如果拉动导致快进合并(HEAD 移动,不需要实际合并),则挂钩不会 运行 .
另一种方法是尝试 use setuid/setgid 强制处理(Git,作为 root)到 运行 作为正确的用户(先决条件:chown 设置对这些文件 user/group)
如果我执行 git pull
或 git checkout
root:root
所以我创建了包含以下内容的文件 .git/hooks/post-merge
:
#!/bin/sh
chown -R mycompany:www /srv/www/vhosts/mycompany
exec git-update-server-info
文件有执行权限
但是没有用,调用git pull
后没有任何变化。
首先要检查:您的挂钩是否可执行?
作为 in this example:
Run
chmod +x post-merge
to make it executable then put it into.git/hooks/
.
然后在里面至少加一个echo,看看有没有执行。
请注意,挂钩只会在成功合并后 运行,这意味着如果拉动导致快进合并(HEAD 移动,不需要实际合并),则挂钩不会 运行 .
另一种方法是尝试 use setuid/setgid 强制处理(Git,作为 root)到 运行 作为正确的用户(先决条件:chown 设置对这些文件 user/group)