Git post-receive没有触发

时间:2016-02-05 10:10:21

标签: git

问题

为什么我的胡克没有被执行?

环境&设置

我正在使用Debian 7和Git 1.7.10.4 - 官方Debian存储库中的当前版本。 没有具体的" git"由安装创建的Unix用户,然后git存储库在另一个标准的unix用户下处理,而不是名为git。它是一个"裸露的" Git Repository。

挂钩

基于教程,我创建了下面的Hook(我替换了foldername),虽然没有post-receive.sample文件。

#!/usr/bin/env ruby
# post-receive

REPO=/var/webs/placeholder_name.de
DATE_STAMP=$(date +%Y.%m.%d_%H:%M)
LOG=/var/log/git_hook/placeholder_name.log

echo "PUSH detected @ $DATE_STAMP ▒$1 $2 $3" >>$LOG
# 1. Read STDIN (Format: "from_commit to_commit branch_name")
from, to, branch = ARGF.read.split " "

# 2. Only deploy if master branch was pushed
if (branch =~ /master$/) == nil; then
  "Received branch #{branch}, not deploying." >> $LOG
  exit
end

# 3. Copy files to deploy directory
echo "Push at $DATE_STAMP $1 $2 $3" >> $LOG
cd $REPO && git reset --hard HEAD && git clean -f -d && git pull >> $LOG

# 4.TODO: Deployment Tasks
cd WebContent && php composer.phar update

问题

shell脚本本身正在工作,我知道"工作树" - 替代,但这不是问题。 正如我所提到的,脚本正在运行 - 如果由ssh执行。 然而,从客户端推送似乎不执行脚本 - 日志文件没有输入。

Git配置

[core]
        repositoryformatversion = 0
        filemode = true
        bare = true

权限

我希望推送是在给定的Unix用户下完成的,脚本是可执行的,所以就我对这个主题的熟悉而言,这不应该成为一个问题。

0 个答案:

没有答案