web-dev-qa-db-ja.com

Git Pushエラー受信前フックが拒否されました

このチュートリアルの1〜6の手順に従って、gitlabhq Railsサーバーを仮想マシンで実行しました。 https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README .md でRailsサーバーを起動し、コマンドSudo -u git -H bundle exec Rails s -e productionを実行します。その後、管理ツールを使用してユーザーを作成し、このユーザーの下に新しいプロジェクトを作成しました。それから私はいつものようにこのリポジトリに既存のプロジェクトをプッシュしようとしています。しかし最後のステップで、git Push Origin masterはエラーで失敗します

[リモート拒否]マスター - >マスター(受信前フックは拒否されました)

追加情報:

1)サーバー側でポストサービスを設定していないため、このマニュアルではその方法を見つけられなかったため、電子メールアクティベーションリンクを介してユーザー(プロジェクト所有者)をアクティベートしていません。

2)Gitlabサーバーがプロジェクトをリポジトリにプッシュする方法のヒントを生成し、パスにrepositories/がありません。私はそれが正しいgit@mygitlabhost:user/repo.gitの代わりにgit@mygitlabhost:repositories/user/repo.gitを生成することを意味します。

3)私がそれをデバッグしようとしたとき、私はサーバ上のリポジトリの中でpre-receiveスクリプトを開き、変数を出力しようとしました(refs = ARGF.readkey_id = ENV['GL_ID']そしてrepo_path = Dir.pwd)たぶん、問題はここにあります...もしそうなら、それをどのように修正するかについて私に提案をお願いします。ありがとう

103
Hroft

問題はsidekiqのようないくつかのサービスにあるようです。 Sudo -u git -H bundle exec rake gitlab:check Rails_ENV=productionを実行すると、configに関するすべての問題が出力されます。

8
Hroft

GitLabはデフォルトでmasterブランチをprotectedとしてマークします( https://about.gitlab.com/2014/11/26/keeping-your-code-protected / の理由の一部Protecting your codeを参照)。あなたのケースでそうなら、これは助けることができます:

プロジェクトを開き、[設定]> [リポジトリ]タブの順にクリックして[保護されたブランチ]に移動し、[開発者はプッシュできる]を選択してから、もう一度やり直してください。

経由 https://gitlab.com/gitlab-com/support-forum/issues/40

バージョン8.11以降の場合ハウツーここ: https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-Push特定のユーザーへの-and-merge-access

165
Max Vyaznikov

私のローカルマシンで以下の問題を解決しました:

A.まず、Bitbucket Serverに接続するために詳細に関する正しいログを使用していることを確認してください(つまり、自分に属するユーザー名/パスワード/ SSHキー)。

B.それから、名前/メールアドレスがあなたのローカルGit設定で正しく設定されていることを確認してください。あなたがプッシュしようとしているアカウントのあなたのローカルGit設定を設定してください。これは、名前と電子メールアドレスの両方で大文字と小文字が区別されることに注意してください。*スペースも区別されます - 一部の企業アカウントでは、名前に余分なスペースや文字が含まれます。 "Contractor/ space space(LDN)"。 Bitbucket Serverと同じ数のスペースを設定に含める必要があります。動かない場合は、メモ帳でこれを確認してください。

C.間違ったアカウントを使用していた場合は、アカウントの認証情報(ユーザー名/パスワード/ SSHキー)を切り替えてもう一度プッシュしてください。

D.そうでなければ、あなたのローカル設定が間違っているなら、あなたはそれを修正する必要があるでしょう。

Mac用

open -a TextEdit.app ~/.gitconfig

注:プッシュしようとしていた古いコミットを修正する必要があります。

  1. 最後のコミットを修正します。

    > git commit --amend --reset-author
    
      
    <save and quit the commit file text editor that opens, if Vim then
    :wq to save and quit>
    
  2. コミットを再プッシュしてみてください。

    > git Push
    
7
Maverick09

あなたはプロジェクトやマスターブランチへの開発者アクセス権を持っていないかもしれません。あなたはPush new work upへのdevアクセスが必要です。

新しい仕事は新しいブランチとコミットを意味します。

2
Vishav Premlall

そうではないかもしれませんが、これは私の「受信前フック拒否」エラーの解決策でした。

プルリクエストによる変更のみを許可するリポジトリがいくつかあります。これはあなたがしなければならないことを意味します

  1. 変更をプッシュしたいブランチをベースとして新しいブランチを作成します。
  2. 変更を確定して新しいブランチにプッシュします。
  3. ブランチを元のブランチとマージするためにプルリクエストを開きます。

私はこの問題を解決するために、remote 'Origin' url.git/confighttpからgitプロトコルに変更しました。

0
zzxwill

[プロジェクトの設定]-> [フック]->(下)事前受信フックに移動します

Cpを無効にし、コミットで問題の参照を要求する

0
Manoj

あなたはあなたのgitアカウントにあなたのsshキーを追加する必要があります。

0
Hardik Hardiya