我已经在虚拟机上运行了gitlabhq rails服务器,遵循本教程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。之后,我创建了用户,使用管理工具,并在此用户下创建了新项目。然后,我试图像往常一样将现有项目推到这个回购。但在最后一步,git push origin master失败,并出现错误

[远程拒绝]master -> master(预接收钩子拒绝)

额外的信息:

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

2) Gitlab服务器生成提示如何推送项目到repo,没有repositories/ in路径。我的意思是它生成git@mygitlabhost:user/repo。Git代替git@mygitlabhost:repositories/user/repo。Git是正确的。

3)当我试图调试它时,我在服务器上的repo中打开了预接收脚本,并尝试输出变量(有3个):refs = ARGF。read, key_id = ENV['GL_ID'] and repo_path = Dir。PWD和发现,key_id总是空的。也许问题就在这里……如果是这样,请给我建议如何解决。谢谢


当前回答

我经历过这种情况,只是因为AWS破损。

要排除这种情况,只需检查消息是否包含类似的内容

<head><title>504网关</title></head>

所以,如果你之前没有做过任何可疑的事情,只是开始看到这个-这可能只是服务器超时。

其他回答

我通过在.git/config中将远程“origin”url从http更改为git协议来解决这个问题

这对我很管用。

在最新版本的GitLab中,你可以在下面找到它:

你的GitLab项目>设置>存储库>受保护的分支 一个或两个设置(允许合并/推送)设置为:开发人员+维护者或使人成为维护者。

https://gitlab.com/gitlab-org/gitlab-recipes/-/issues/27

请检查JIRA状态是否在“开发中”。 对我来说,不是,当我把jira的状态改为“开发中”时,它对我有用。

可能不是这样,但这是我的“pre-receive hook declined”错误的解决方案:

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

创建一个新分支,以您想要将更改推入的分支为基础。 提交并将更改推送到新分支。 打开一个Pull Request来合并你的分支和原来的分支。

这是因为主分支受到保护,以下是清除此错误的步骤。

在你的主分支中创建一个分支git checkout -b new-branch-name 推送新的分支git Push——set-upstream origin new-branch-name 现在远程地将分支合并到主分支。 一旦合并,重置本地主分支git重置-soft HEAD~1 最后git拉