Mic*_*ior 7 git permissions merge githooks
在我工作的一台服务器上,我们必须以root身份登录(原因我不会进入这里).我们有一个用于Web服务器的git存储库设置,但由于文件是以root身份创建的,因此git修改的文件具有错误的权限.
我创建了一个非常简单的合并后钩子,我认为可以解决这个问题.
#!/bin/bash
. git-sh-setup
chown -R www-data:www-data $GIT_DIR
Run Code Online (Sandbox Code Playgroud)
我.git/hooks/post-merge使用执行权限将其删除,但文件似乎永远不会运行.这是我第一次尝试设置一个钩子,所以也许我错过了一些明显的东西.
我注意到的一件事是,大多数钩子都有一个.sample文件,而后合并没有.(git版本1.7.4)
提前致谢!
您可能已经知道,但您可能想要检查合并后挂钩中的 EOL 字符 (CR)。这可能可以解释为什么你的钩子不执行(如另一个问题git-hook-post-merge-error-cannot-run中提到的)。
如果这不是解决方案,您也可以考虑另一种方法来解决您的问题。当服务器上存储库中的文件发生更改时,您可以创建一个任务来对目录执行所有者更改。Cron 任务本身不会根据文件系统更改做出反应,但您可以尝试使用inotify之类的工具来对服务器 git 存储库中的任何更改做出反应。
我希望这两条信息能够解决您的问题,或者至少让您更接近。祝你好运。