Git推送错误预接收钩拒绝

我已经在虚拟机上运行gitlabhq rails server,从这个教程https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md执行1-6个步骤,并启动rails服务器执行命令sudo -u git -H bundle exec rails s -e production 。 之后,我创build了用户,使用pipe理工具,并在这个用户下创build了新的项目。 然后我一直试图把现有的项目推到这个回购。 但是在最后一步, git push origin master失败并报错

[远程拒绝]主控 – >主控(预接收勾拒)

附加信息:

1)我没有通过电子邮件激活链接激活用户(项目所有者),因为我没有在服务器端configurationpost服务,在本手册中没有find如何做到这一点的说明。

2)Gitlab服务器生成如何推送项目回购和提示没有repositories/在path。 我的意思是它生成git@mygitlabhost:user/repo.git而不是git@mygitlabhost:repositories/user/repo.git这是正确的。

3)当我试图debugging它时,我打开服务器上回购的pre-receive脚本,并试图输出variables(其中有3个): refs = ARGF.readkey_id = ENV['GL_ID']repo_path = Dir.pwd并find,那key_id总是空的。 也许问题在这里…如果是这样,请给我build议如何解决这个问题。 谢谢

默认情况下,GitLab将master分支标记为protected (请参阅https://about.gitlab.com/2014/11/26/keeping-your-code-protected/ why Protecting your code )。 如果是这样的话,这可以帮助:

打开你的项目>设置[> Repository]选项卡,进入“Protected branches”,select:“Developers can push”并重试。

通过https://gitlab.com/gitlab-com/support-forum/issues/40

似乎问题是一些服务,如sidekiq。 运行sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production输出configuration的所有问题。

您可能没有开发人员访问项目或主分支。 您需要dev访问来推动新的工作。

新工作意味着新的分支机构和承诺。

在本地机器中解决了问题后:

答:首先,确保您使用正确的login详细信息连接到Bitbucket服务器(即属于您的用户名/密码/ SSH密钥)

B.然后,确保在本地Gitconfiguration中正确设置了名称/电子邮件地址:为您试图推送的帐户设置本地Gitconfiguration(检查声明您是提交文件的人)*请注意,这是区分大小写的名称和电子邮件地址*它也是空间敏感的 – 一些公司帐户名称中有额外的空格/字符,例如。 “ Contractor/ space space(LDN) ”。 您必须在您的configuration中包含与在Bitbucket服务器上相同数量的空格。 如果卡住,请在记事本中查看。

C.如果您使用的是错误的帐户,只需切换您的帐户凭据(用户名/密码/ SSH密钥),然后再次尝试推送。

D.否则,如果你的本地configuration不正确,你将需要修改它

对于MAC

open -a TextEdit.app ~/.gitconfig

注意:您将不得不修复您尝试推送的旧提交。

  1. 修改你最后的提交:

     > git commit --amend --reset-author  <save and quit the commit file text editor that opens, if Vim then :wq to save and quit> 
  2. 尝试重新推送您的提交:

     > git push 

你需要添加你的ssh密钥到你的git账户,如果它抛出错误,那么删除以前的ssh密钥并创build一个新的ssh密钥然后添加。

可能不是这种情况,但这是我的“ 预接收钩拒绝 ”错误的解决scheme:

有一些存储库只允许通过Pull Request进行修改。 这意味着你必须

  1. 创build一个新的分支,作为您想要将更改推送到的分支。
  2. 提交并将更改推送到新分支。
  3. 打开合并请求,将您的分支与原始分支合并。