gitlab hook declined错误

解决GitLab提交工程时遇到的拒绝更新master分支错误,通过调整hooks设置和理解GitLab内部处理流程来修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在向gitlab提交工程的时候,出现错误提示:

remote: GitLab: You are not allowed to access master!
remote: error: hook declined to update refs/heads/master
To sa_gitlab@192.168.xxx:xxx/xxx.git
! [remote rejected] master -> master (hook declined)

这个问题主要是由于git工程里的hooks/post-receive和update引起的。可以删除这两个文件;

但是问题的根源不在这,在新建工程的hooks里面的这两个文件只是ln -s 出来的软链接,关键问题是,这两个软链接链错了位置。

查看 gitlab-shell/lib/gitlab_project.rb这个创建新工程的文件,里面有

def add_project
   FileUtils.mkdir_p(full_path, mode: 0770)
   #cmd = "cd #{full_path} && git init --bare && #{create_hooks_cmd}"
   cmd = "cd #{full_path} && git init --bare"
   system(cmd)
 end
 def create_hooks_cmd
   pr_hook_path = File.join(ROOT_PATH, 'hooks', 'post-receive')
   up_hook_path = File.join(ROOT_PATH, 'hooks', 'update')
   #2013年11月5日 <feixiang> path alway add /home/repositories/ ,but what we want is a absolute path , comment it
   "ln -s #{pr_hook_path} #{full_path}/hooks/post-receive && ln -s #{up_hook_path} #{full_path}/hooks/update"
 end

把create_hooks_cmd注释了即可,但是,这样在后面如果要在网页修改hooks的话,可能还会出问题...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值