我已按照本教程https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md的1-6个步骤在虚拟机上运行gitlabhq rails服务器,并启动了执行命令sudo -u git -H bundle exec rails s -e production
的rails服务器。之后,我使用管理员工具创建了用户,并在该用户下创建了新项目。然后,我试图像往常一样将现有项目推送到此仓库中。但在最后一步中,git push origin master
失败并显示以下错误
附加信息:
1)我尚未通过电子邮件激活链接激活用户(项目所有者),因为我尚未在服务器端配置邮递服务,并且在本手册中也没有找到有关如何执行此操作的说明。
2)Gitlab服务器生成提示,提示如何将项目推送到仓库,并且路径中没有repositories/
。我的意思是它生成git@mygitlabhost:user/repo.git
而不是正确的git@mygitlabhost:repositories/user/repo.git
。
3)当我尝试调试它时,我在服务器上的repo中打开了pre-receive
脚本,并尝试输出变量(共有3个):refs = ARGF.read
,key_id = ENV['GL_ID']
和repo_path = Dir.pwd
,发现key_id始终为空。也许问题出在这里...如果是这样,请给我有关如何解决该问题的建议。谢谢
最佳答案
默认情况下,GitLab将master
分支标记为protected
(为什么要查看https://about.gitlab.com/2014/11/26/keeping-your-code-protected/中的Protecting your code
部分)。如果您的情况如此,则可以帮助您:
通过https://gitlab.com/gitlab-com/support-forum/issues/40
对于8.11及更高版本,此处的操作方法:https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-certain-users