gitlab 钩子post-receive脚本没有运行,谁知道怎么处理的吗?
gitlab 钩子post-receive脚本没有运行,谁知道怎么处理的吗?
在项目下的hooks下的post-receive
#!/bin/bash
WEBROOT=/home/www/test
git --work-tree=$WEBROOT checkout -f master
chmod -R 777 $WEBROOT
git push 后
然而/home/www/test 下面的代码却没有更新
然后,改了下却本
#!/bin/bash
echo 11321>>test.log
WEBROOT=/home/www/test
git --work-tree=$WEBROOT checkout -f master
chmod -R 777 $WEBROOT
再git push
目录中也没有生成test.log,
故是git push后没有执行这个文件
手动执行一次 ./post-receive
发现有生成test.log,
然而/home/www/test 下面的代码有更新
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
看git版本,确认是否支持hooks
post-receive文件中改为
#!/bin/bash
WEBROOT=/home/www/test
git --work-tree=$WEBROOT checkout -f master
chmod -R 777 $WEBROOT
### 要先在本地提交一次才可以做同步,要不gitlab页面上看不到push
cd /var/opt/gitlab/git-data/repositories/root/test.git/
有软链接的话,先删除(/opt/gitlab/embedded/service/gitlab-shell/hooks/post-receive)
mkdir hooks
cd hooks
ln -s /opt/gitlab/embedded/service/gitlab-shell/hooks/pre-receive pre-receive
ln -s /opt/gitlab/embedded/service/gitlab-shell/hooks/update update
上传post-receive
chown git:git hooks
chmod 777 -R hooks
用key
ssh-keygen -t rsa -C "your_email@example.com"
或者从gitlab页面添加
添加到/var/opt/gitlab/.ssh/authorized_keys
不行再用绝对路径
然后git clone
git clone git@192.168.163.175:root/test.git
然后要
chmod 777 -R /home/www/
已处下好
请问这个post-receive脚本放在哪里啊?是不是gitlab服务器上,找到指定的项目,然后进入.git/hooks目录下,放在里面?
我昨天找我们运维试了一下,不行,发现项目的.git下是有一个hooks目录,但是是一个软链,我把post-receive脚本放进去了,权限设置成777,不行,没效果。我的脚本就是一个exit 1,不让提交,结果我回到我电脑上操作,还是能提交。没有生效?
已处理好
回复
我也像你这样 请问你是怎么处理的
同求