git pushがリモートで失敗する:エラー:フックがrefs / heads / masterの更新を拒否しました


9

私は最近、コミュニティのgitリポジトリで自分のプロジェクトを開始しようとしていますが、いくつかの問題が発生しています。私はgitを初めて使用しますが、これをテストするために私が試みてきたことは次のとおりです。

次のコマンドを実行すると、すべて正常に実行されます。

git config --global user.name "MYNAME"
git config --global user.email "MYEMAIL"
mkdir testproject
cd testproject
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@git.xxxxx.org:community/testproject.git

上記のコマンドはすべてエラーなしで実行されます。ただし、次のコマンドを実行すると、大きなエラーが発生します。

git push -u origin master

そしてエラーです。

Counting objects: 3, done.
Writing objects: 100% (3/3), 204 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
Username for 'http://git.xxxxxx.org': MYEMAIL
Password for 'http://MYEMAIL.com@git.xxxxxx.org': 
remote: /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.1.0 in any of the sources (Bundler::GemNotFound)
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/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'
remote: error: hook declined to update refs/heads/master
To http://git.xxxxxx.org/community/testproject.git
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'http://git.xxxxxx.org/community/testprojact.git'

ここからどうすればいいのかよくわかりませんが、助けていただければ幸いです。

また、問題があればArchを実行しています。

編集: 私はレーキを再インストールしようとしましたが、うまくいきませんでした。私の現在のバージョンのrakeは10.1.1だったので、それを削除してバージョン10.1.0に置き換えてみましたが、それでも修正されませんでした。

ただし、rakeをインストールしているときにエラーが発生しました。

WARNING:  You don't have /home/josh/.gem/ruby/2.0.0/bin in your PATH,
          gem executables will not run.

これが問題の原因である可能性はありますか?

回答:


9

リモートがデータの受信を拒否したことは、実際の問題の副作用にすぎません-gitは、リモートエンドのフックの1つが終了ステータス> 0で失敗したために拒否されたと考えています(これは、 Rubyトレースバック)。フックの1つがを使用しようとしているためrake、見つかりません。これはおそらくあなたの特定のリポジトリの問題ではありません。そのメッセージもローカルコンピュータからのものではありません。「remote」というプレフィックスが付いていることに注意してください。欠落しているのはリモートであるrakeため、問題を修正できるのはおそらくその側のsysadminだけです。

コミュニティのgitリポジトリを管理している人に連絡することをお勧めします。


それはまさに私が考えていたものです。私のgitリポジトリのフックはどれもアクティブではなく、これまでのところ、エラーを変更したり、新しいものを作成したりすることはできません。リポジトリの所有者に連絡して、問題に関する情報があるかどうかを確認します。
Joshua Strot 2013

問題は、GitLabでサポートされていないHTTPメソッドをプッシュしようとしていることでした。代わりにSSHをプッシュする必要があります。私は言わなければならない、私はそれを期待していなかった
Joshua Strot 2013

0

これはあなたの問題だと思います。

remote: error: hook declined to update refs/heads/master
To http://git.xxxxxx.org/community/testproject.git
 ! [remote rejected] master -> master (hook declined)

このエラーを検索するSOというタイトルのこのQ&Aに出くわしました:エラー:フックは、ブランチをプッシュしている間にrefs / heads / external_pubを更新することを拒否しました

そこだと思われるgitのフックプッシュを拒否していますサーバー上で。

抜粋

サーバー側フック

クライアント側のフックに加えて、システム管理者としていくつかの重要なサーバー側のフックを使用して、プロジェクトにほぼすべての種類のポリシーを適用できます。これらのスクリプトは、サーバーへのプッシュの前後に実行されます。preフックはいつでもゼロ以外で終了してプッシュを拒否し、エラーメッセージをクライアントに出力することができます。必要に応じて複雑なプッシュポリシーを設定できます。

なぜこのエラーメッセージが表示されるのかを判断するには、どのフックが作動しているかを把握する必要があります。フックはhooks(リモートサーバー側の)gitフォルダー内のフォルダーに保存されています。pre-receiveフックまたはupdateフックを見つけて、問題の原因を確認してください。


フックフォルダー内に、拡張子が.sampleのファイルが複数あります。事前受信フックはありませんが、更新フックがあります。ただし、すべてに.sample拡張子が付いているので、使用されているとは思わないので、サーバーのフックで拒否されている可能性がありますか?私はオンラインで見ました、そして私の問題ではそれを修正しなかった様々なことをすることによってそれを修正した私の問題を抱えたカップルが何人かいます。
Joshua Strot 2013

0

GITリポジトリの役割/グループと権限を確認する私のケースでは、GITリポジトリチームによって提供された読み取り/書き込みアクセス後に赤の権限とその権限のみが解決されました


0

@Radhakrishnanがすでに提案している場合、権限の問題に直面している可能性があります。

Redmine Gitホスティングを使用している場合は、自分のgitの追跡参照を書き換えようとしているユーザーに、プロジェクト権限パーミッションManagerの役割が割り当てられていることを確認してください。

同じリモートブランチを共有している可能性のある他のユーザーに対するgit push -forceの影響を知っていることを前提としていることに注意してください。詳しくはこちらの記事をご覧ください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.