【发布时间】:2018-12-14 10:05:37
【问题描述】:
当我在实时服务器上执行git pull 时,我以root 身份登录,因此所有修改或新文件的用户和组都设置为root:root。
我已经在我的 post-update 挂钩文件中尝试过这个设置:
OWNER="example:example"
REPO_PATH="/home/example/public_html"
cd $REPO_PATH || exit
unset GIT_DIR
FILES="$(git diff-tree -r --name-only --no-commit-id)"
git merge FETCH_HEAD
for file in $FILES
do
chown $OWNER $file
done
exec git update-server-info
当我运行 git pull 时,它什么也不做。
【问题讨论】:
-
它绝对不应该做任何事情,因为
git pull不会调用更新后挂钩。 -
哇!那么在 git pull 之后我应该使用什么钩子来修改新文件?
-
同时考虑
post-checkout和post-merge;请参阅 contrib/hooks/setgitperms.perl 以获取工作示例。 -
@torek 如果您想将两个 cmets 添加为对此的正确答案,我很乐意将其标记为完成。
标签: git githooks post-update