web-dev-qa-db-ja.com

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

私は最近、コミュニティの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 [email protected]: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://[email protected]': 
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を再インストールしようとしましたが、うまくいきませんでした。私の現在のバージョンの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
Joshua Strot

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

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

9
Chris Down

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

Redmine Git Hostingを使用している場合は、プロジェクトの権限Managergitの追跡参照を書き換えようとしているユーザーに役割が割り当てられています。

同じリモートブランチを共有している可能性がある他のユーザーへのgit Push -forceの影響を知っていると想定していることに注意してください。詳細については、 この記事を確認してください

0
Julio Nobre

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

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に出くわしました、タイトル: error:フックはブランチをプッシュしている間にrefs/heads/external_pubを更新することを拒否しました

プッシュを拒否しているサーバーに gitフック があるようです。

抜粋

サーバー側フック

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

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

0
slm

GITリポジトリでの役割/グループと権限を確認する

0
Radhakrishnan