我们的服务器在Ubuntu 14.04上托管Gitlab和apache,他们还可以。 我使用以下post-receive hook bash脚本为每次推送自动部署网站:
#!/bin/bash
while read oldrev newrev ref
do
if [$ref=~.*/masters]; then
git --work-tree=/var/www/html
git checkout -f
fi
done
令我惊讶的是没有发生任何事情 - / var / www / html中没有任何内容。 git客户端成功但它也输出git命令选项,好像git -work-tree有问题。
顺便说一下Gitlab存储工作目录文件的方式,因为当我在服务器上运行此命令时
sudo -u git -H ls /home/git/repositories/root/demogitlab.git
我看不到他们。我可以看到config,HEAD,Hooks,Objects和refs。
答案 0 :(得分:0)
需要 [
,=~
和]
周围的空格。它们不是可选的。
git --work-tree
本身不是有效命令。 --work-tree
是其他git
子命令的选项。
git --work-tree checkout -f