在我工作的某个服务器上,由于某些原因我们必须以root身份登录。我们设置了一个用于Web服务器的git仓库,但是由于文件是以root身份创建的,因此被git修改的文件权限不正确。
我创建了一个非常简单的post-merge钩子,我认为这可以解决问题。
我将这个文件放入了
有一件事情我注意到了,大多数钩子都有一个
提前感谢!
我创建了一个非常简单的post-merge钩子,我认为这可以解决问题。
#!/bin/bash
. git-sh-setup
chown -R www-data:www-data $GIT_DIR
我将这个文件放入了
.git/hooks/post-merge
,给予了执行权限,但这个文件似乎从来没有运行过。这是我第一次尝试设置钩子,所以也许我漏掉了一些显而易见的东西。有一件事情我注意到了,大多数钩子都有一个
.sample
文件,而后置合并没有。(git版本1.7.4)提前感谢!
echo
或编写tmp
文件以确保它没有运行吗?为什么是post-merge
(在git pull上)而不是post-receive
(在git push
上)?如果您不直接在服务器上执行git pull
,那么特定的钩子(post-merge
)将不会运行。. git-sh-setup
这一行的作用是什么? - VonCgit merge origin/feature-branch
。理想情况下,我也希望这个钩子可以在git reset
时运行。实际上,只要 git 操作了该目录中的任何文件,我都希望运行这个钩子。 - Michael Miorchgrp -R group_name $GIT_DIR
添加为文件post-merge
。下面没有看到任何好的答案... :q - Jennings