无法从本地服务器推送到GitLab存储库(挂钩被拒绝?)

时间:2014-05-16 14:17:58

标签: git gitlab

我在与GitLab存储库相同的服务器上有一个本地Git存储库。我可以拉,但不能推。由于我在同一台服务器上,因此我没有使用SSH密钥。看看GitLab的钩子标签,没有显示任何内容(请注意,我从未使用过钩子,并且真的不知道它们的用途)。这是如何解决的?谢谢

[root@vps bidjunction]# git remote -v
origin  /home/git/repositories/root/bidjunction.git (fetch)
origin  /home/git/repositories/root/bidjunction.git (push)

[root@vps bidjunction]# git push origin master
Counting objects: 25, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (14/14), 2.31 KiB | 0 bytes/s, done.
Total 14 (delta 11), reused 0 (delta 0)
remote: GitLab: You are not allowed to access master!
remote: error: hook declined to update refs/heads/master
To /home/git/repositories/root/bidjunction.git
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to '/home/git/repositories/root/bidjunction.git'
[root@vps bidjunction]#

1 个答案:

答案 0 :(得分:0)

它可能取决于使用的GitLab版本:

在GitLab 6.7.x之后,该钩子似乎被错误激活:见issue 6810

  

升级后,推送到所有repos开始被拒绝,并显示以下错误消息:

remote: GitLab: You are not allowed to access master!
remote: error: hook declined to update refs/heads/master
  

降级回6.6.5(以及GitLab Shell 1.8.0)解决了这个问题。

请注意,它还提到:

  

解决方法是更新gitlab.yml的ldap部分,将所有当前用单引号括起来的值换成双引号。

     

似乎只有那些使用LDAP进行身份验证的人才会受到影响。


也可能是因为master分支受到保护,如issue 6968中所述:

  

如果我将master设为受保护的分支机构,即使我是项目的所有者,也无法推送它(请参阅下面的错误)。
  如果我取消保护master,那么我的推送能力又回来了。

     

我在GitLab 6.8.2。