在实时环境中,我需要获取标签并在它们之间切换。每次切换后,我都需要chown / chmod worktree中的所有文件。
我创建了一个IE=edge
挂钩
post-checkout
#!/bin/bash
chown -R www-data:www-data public/
find public/ -type f -exec chmod 400 {} \;
find public/ -type d -exec chmod 500 {} \;
目录在公共目录之外,所以我将以下内容添加到git配置中。
.git
现在我执行以下命令
worktree = /var/www/site/public
但# git fetch --tags
# git checkout 0.0.1
挂钩未执行。怎么了?
另一个问题:钩子的相对路径是什么?它是post-checkout
所在的目录,还是.git
?
答案 0 :(得分:1)
检查您的.git/hooks/post-checkout
是否设置了可执行标志,否则执行chmod +x .git/hooks/post-checkout
。
钩子的当前工作目录作为存储库根目录(.git
所在的目录)。
您可以通过编写一个非常简单的钩子
来验证您实际执行了钩子以及它当前的工作目录#!/bin/sh
pwd
echo "This is post-checkout hook"