GitHubメッセージの意味:メールのプライバシー制限によりプッシュが拒否されました


202

githubのプルリクエストを受け入れてマージしましたが、コミットをプルできなくなりました。

メッセージは次のとおりです。

! [remote rejected] master -> master (push declined due to email privacy restrictions)
error: failed to push some refs to 'git@github.com:FranckFreiburger/vue-resize-sensor.git'


git did not exit cleanly (exit code 1) (3838 ms @ 12/04/2017 21:23:11)

私は今どうすればいい ?


1
私は、ドキュメントページを見つけました:help.github.com/en/github/...
セバスチャンNORR

回答:


399

リモートリポジトリは、個人の電子メールアドレスを公開するコミットをプッシュできないように構成されています。たとえば、GitHubで、コマンドラインプッシュをブロックしてメールを公開するチェックボックスをオンにして、これ有効にしました

メールを公開するコマンドラインプッシュをブロックする

もちろん、その設定のチェックを外すこともできますが、リポジトリにアクセスできる人なら誰でも作者の情報を読み取ることができるため、世界中のすべての人にあなたのプライベート電子メールアドレスが公開されます。

代わりに、次のようにします。

  1. Gitでのコミットにデフォルトで使用される個人の電子メールアドレスを確認できます。

    git config --global user.email
  2. GitHubの[個人設定]→[メール]GitHub noreplyアドレスを見つけます。[ メールアドレスを非公開にする]チェックボックスの説明に記載されています。通常、一意の識別子とユーザー名で始まります。

    {ID}+{username}@users.noreply.github.com

    メールアドレスを非公開にする

  3. グローバルユーザーの電子メールアドレス設定をGitHub noreplyアドレスに変更します。

    git config --global user.email {ID}+{username}@users.noreply.github.com
  4. 最後のコミットで作成者情報をリセットします。

    git commit --amend --reset-author

    プライベート電子メールアドレスで複数のコミットがある場合は、この回答を参照してください。

  5. noreplyの電子メールアドレスでコミットをプッシュできるようになりました。今後のコミットにもnoreplyの電子メールアドレスが含まれます。

    git push

4
いいえ、それは私の側の魅力のように機能しました、多分あなたは一歩忘れました、@ adamczi。これは、考えられる両方の解決策を示しているため、受け入れられる答えになるはずです。
イオアナ2017

4
おかげで、私はステップ2ワース気づかでエラーをしたかもしれないと思う以外に電子メールを設定するので、あなたが明示的に、そこVirtlinkの指示@従うべきであるということです<your_uname>@users.noreply.github.com(自分がに設定するようNoneにあなたのコミットを示していないになります)プロファイルページのグラフ。
adamczi 2017

3
私にも同じような不思議な問題がありました。私の間違いはそうでしたgit commit --amend --author "first last me@users.noreply.github.com"、そしてそれはそのようには思われませんでした。あなたは本当にリセットする必要がありuser.email、正確に上記のような構成パラメータを。乾杯!
msanford 2017

6
Virtlinkが上記で提供するステップ4は、このエラーを回避するために重要でした。私は設定でuser.emailを返信なしのメールアドレスを使用するように設定しましたが、Pushコマンドはプライベートメールの公開に関する苛立たしいエラーを返しました。プッシュしようとしたコミットを修正すると、プッシュが許可されました。
teaman

3
単一のリポジトリのメールアドレスのみを変更したい場合があります。この回答は役に立ちましたが、私はgithubのヘルプ記事も参照する必要がありました:単一リポジトリのメールアドレスの設定
gfullam

146

これは、メールアドレスを公開するコマンドラインプッシュをブロックする新しいGitHub設定が原因である可能性があります。

メール設定の[コマンドラインプッシュをブロックしてメールを公開する]チェックボックスをオフにしてから、もう一度プッシュしてみてください。


20
このオプションをオフにすると、プライベートメールアドレスが公開されますか?
フランクフライ

14
はい、それはそれがすることですが、リポジトリにコミットをプッシュした場合、あなたはすでにあなたの電子メールアドレスを公開しました。Githubはあなたの電子メールアドレスを表示しませんが、リポジトリを複製すると、それらをまったく同じように表示できます。これが、この新しいプッシュ防止機能によって防止されます。
ラッセV.カールセン2017

10
これは疑わしいソリューションです。少なくとも、これはあなたの電子メールアドレスを全世界に公開することを述べてください。
kovac

Daniel AA PelsmaekerWinfriedがより良い答えです。
Peter Mortensen

1

私はエラーを解決しました:

git config --global user.email ""

これにより、メールが空白(空の文字列)に設定されます。私は今個々のプロジェクトで私のメールを設定します:

git config user.email "myemail@domain.com"


0
  1. github.comにアクセスして、プロフィールをクリックするだけです
  2. 設定に移動
  3. 左側のナビゲーションパネルで[メール]をクリックします
  4. そして、「私のメールアドレスを非公開にする」フィールドを検索します
  5. このオプションのチェックを外してください
  6. もう一度確認してください。問題は解決したと思います。

2
これは機能しますが、あなたのプライベートメールアドレスを公開します。プライバシーについて懸念がある場合は、他のソリューションを参照してください。
kaznovac

-1

メールを公開する [ コマンドラインプッシュをブロックする]チェックボックスをオフにして、コマンドラインからコードをプッシュしてみます。


同じことを知っていますか?
LOG_TAG

これは機能しますが、あなたのプライベートメールアドレスを公開します。プライバシーについて懸念がある場合は、他のソリューションを参照してください。
kaznovac

それはジョーダン・ルイスの答えとどう違うのですか?
Peter Mortensen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.