GitLab 6.9.0-“;胡克拒绝更新参考文件/头文件/主文件”;

GitLab 6.9.0-“;胡克拒绝更新参考文件/头文件/主文件”;,git,hook,push,gitlab,Git,Hook,Push,Gitlab,最近几天我读了很多有同样问题的帖子。有些人提出了解决办法,但对我来说什么都不管用 在通过更新脚本更新到6.9.0之后,当我按下按钮时,我得到 POST git-receive-pack (896 bytes) remote: /usr/local/lib/ruby/2.0.0/net/protocol.rb:158:in `rescue in rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)[K remote: from /usr/local

最近几天我读了很多有同样问题的帖子。有些人提出了解决办法,但对我来说什么都不管用

在通过更新脚本更新到6.9.0之后,当我按下按钮时,我得到

POST git-receive-pack (896 bytes)
remote: /usr/local/lib/ruby/2.0.0/net/protocol.rb:158:in `rescue in rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)[K
remote:     from /usr/local/lib/ruby/2.0.0/net/protocol.rb:152:in `rbuf_fill'[K
remote:     from /usr/local/lib/ruby/2.0.0/net/protocol.rb:134:in `readuntil'[K
remote:     from /usr/local/lib/ruby/2.0.0/net/protocol.rb:144:in `readline'[K
remote:     from /usr/local/lib/ruby/2.0.0/net/http/response.rb:39:in `read_status_line'[K
remote:     from /usr/local/lib/ruby/2.0.0/net/http/response.rb:28:in `read_new'[K
remote:     from /usr/local/lib/ruby/2.0.0/net/http.rb:1406:in `block in transport_request'[K
remote:     from /usr/local/lib/ruby/2.0.0/net/http.rb:1403:in `catch'[K
remote:     from /usr/local/lib/ruby/2.0.0/net/http.rb:1403:in `transport_request'[K
remote:     from /usr/local/lib/ruby/2.0.0/net/http.rb:1376:in `request'[K
remote:     from /home/git/gitlab-shell/lib/gitlab_net.rb:76:in `block in get'[K
remote:     from /usr/local/lib/ruby/2.0.0/net/http.rb:852:in `start'[K
remote:     from /home/git/gitlab-shell/lib/gitlab_net.rb:76:in `get'[K
remote:     from /home/git/gitlab-shell/lib/gitlab_net.rb:31:in `allowed?'[K
remote:     from /home/git/gitlab-shell/lib/gitlab_update.rb:39:in `exec'[K
remote:     from hooks/update:14:in `<main>'[K
remote: error: hook declined to update refs/heads/master[K
Pushing to http://xyz/xyz/test.git
To http://xyz/xyz/test.git
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'http://xyz/xyz/test.git'
更新挂钩是标准gitlab shell更新脚本的符号链接

#!/usr/local/bin/ruby

# This file was placed here by GitLab. It makes sure that your pushed commits
# will be processed properly.
# You can add your own hooks to this file, but be careful when updating gitlab-shell!

refname = ARGV[0]
key_id  = ENV['GL_ID']
repo_path = Dir.pwd
#repo_path = `pwd`

require_relative '../lib/gitlab_update'

GitlabUpdate.new(repo_path, key_id, refname).exec
(我想我做了一两件小事,但问题是在我的小改变前后)

有人能帮我分析和解决这个问题吗

谢谢你的反馈

PS:几天前我在这里提出了一个问题:


我还有第二个GitLab实例更新到了6.9.0,它正在运行,没有任何问题?

我不知道这是否能帮助别人,但我已经找到了解决这个“bug”的方法

在您的存储库文件夹
/home/git/repositories/user/project\u name.git/hooks/update
中,只需替换第一行:

#!/usr/local/bin/ruby
据此:

#!/usr/bin/env ruby

这救了我,所以我希望它能帮助别人。

我不知道这是否能帮助别人,但我已经找到了解决这个“bug”的方法

在您的存储库文件夹
/home/git/repositories/user/project\u name.git/hooks/update
中,只需替换第一行:

#!/usr/local/bin/ruby
据此:

#!/usr/bin/env ruby

这救了我,所以我希望它能帮助其他人。

对我来说,问题是我已经将unicorn配置为只启动一个工作进程


Unicorn启动GET请求,以确定当前推送的用户是否允许推送。如果没有第二个工作进程,此请求将永远不会得到响应。

对我来说,问题是我已将unicorn配置为只启动一个工作进程


Unicorn启动GET请求,以确定当前推送的用户是否允许推送。如果没有第二个工作进程,此请求将永远不会得到响应。

我遇到相同的错误,我的解决方案是暂时禁用更新文件,推送完成后,启用它。

我遇到相同的错误,我的解决方案是暂时禁用更新文件,推送完成后,启用它

尝试设置PermitUserEnvironment值

尝试设置PermitUserEnvironment值

以下步骤有助于解决此问题

  • 使用git remote rm origin删除源站
  • 使用git remote add origin重新添加原点https://github.com/
  • 使用
    git remote-v
  • 再次尝试执行git推送原点

  • 以下步骤有助于解决该问题

  • 使用git remote rm origin删除源站
  • 使用git remote add origin重新添加原点https://github.com/
  • 使用
    git remote-v
  • 再次尝试执行git推送原点

  • 最后我重新安装了我的GitLab,现在它又能工作了。我在使用更新版本的GitLab时从未遇到过这样的问题。现在我在Docker容器中使用GitLab,这样我就可以直接使用它,而不用处理安装。工作起来很有魅力;)可能有人有这个问题。做一个备份,安装一个Docker容器,导入你的备份,然后高兴地说:)最后我重新安装了我的GitLab,现在它又能工作了。在使用更新版本的GitLab时,我再也没有遇到过这样的问题。现在我在Docker容器中使用GitLab,这样我就可以直接使用它,而不用处理安装。工作起来很有魅力;)可能有人有这个问题。进行备份,设置Docker容器,导入备份,然后开心地:)