繁体   English   中英

带有Git推送的问题

[英]Issue w/ Git push

我尝试推动新的第14台Ubuntu安装。
这是它面对的控制台输出:

>     host@host:~/repo/cab$ git push origin master Counting objects: 46, done. Delta compression using up to 4 threads. Compressing objects:
> 100% (9/9), done. Writing objects: 100% (13/13), 957 bytes | 0
> bytes/s, done. Total 13 (delta 6), reused 0 (delta 0) remote:
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/spec_set.rb:92:in
> `block in materialize': Could not find rake-10.3.2 in any of the
> sources (Bundler::GemNotFound) remote:    from
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/spec_set.rb:85:in
> `map!' remote:    from
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/spec_set.rb:85:in
> `materialize' remote:     from
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/definition.rb:132:in
> `specs' remote:   from
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/definition.rb:177:in
> `specs_for' remote:   from
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/definition.rb:166:in
> `requested_specs' remote:     from
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/environment.rb:18:in
> `requested_specs' remote:     from
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/runtime.rb:13:in
> `setup' remote:   from
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler.rb:121:in
> `setup' remote:   from
> /usr/local/lib/ruby/gems/2.1.0/gems/bundler-1.7.7/lib/bundler/setup.rb:17:in
> `<top (required)>' remote:    from
> /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' remote:
>   from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
> To http://gitlab.loc/group/cab.git  ! [remote rejected] master ->
> master (pre-receive hook declined) error: failed to push some refs to
> 'http://gitlab.loc/group/cab.git'

这是Java项目。 根本没有与Ruby的关系。
我在这里弄坏了什么?

根本没有与Ruby的关系。

实际上是:您正在推送到GitLab服务器 (用Ruby编写),并且可能没有正确的“项目访问”权限( 2014年引入 )。
如果master受到保护,则GitLab将拒绝该推送。

这就是[remote rejected] master -> master (pre-receive hook declined)意思。

请参阅“ GitLab权限 ”:只有masterowner可以推送到受保护的分支。

这是我对GitLab设置的pre-receive挂钩的看法:

[<gitlab-server>:/path/to/gitlab-shell/hooks] $ more pre-receive
#!/usr/bin/env ruby

# This file was placed here by GitLab. It makes sure that your pushed commits
# will be processed properly.

refs = ARGF.read
key_id  = ENV['GL_ID']
repo_path = Dir.pwd

require_relative '../lib/gitlab_custom_hook'
require_relative '../lib/gitlab_access'

if GitlabAccess.new(repo_path, key_id, refs).exec &&
    GitlabCustomHook.new.pre_receive(refs, repo_path)
  exit 0
else
  # reset GL_ID env since we stop git push here
  ENV['GL_ID'] = nil

  exit 1
end

OP添加:

我在两个月前克隆了我的仓库,从那以后一直没有碰到它。
几分钟前,我将同一个项目克隆到另一个位置,现在看来一切都很好。

与该新克隆关联的凭据必须与第一个存储库中使用的凭据不同。

看一下这些行:

> To http://gitlab.loc/group/cab.git  ! [remote rejected] master ->
> master (pre-receive hook declined) error: failed to push some refs to

注意remote rejectedpre-receive hook declined

似乎您的存储库有一个预接收钩子,并且拒绝了您推送

有关git hooks链接的更多信息

AS VonC 在下面指出了这一点,因为有GitLab角色

好吧,看来问题出在我身边:两个月前,我克隆了我的仓库,从那以后一直没有碰到它。 几分钟 以前我将同一个项目克隆到另一个位置,现在看来一切都很好。 感谢大家的协助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM