AndroidStudioからGitHubにリモートプッシュしたら [Push rejected: Push master to origin/master was rejected by remote] [remote: error: GH007: Your push would publish a private email address.]

Posted on

既存のプロジェクトをAndroidStudioからGitHubにインポートはできましたが
ローカルのcommitをリモートへPushしようとしたらエラーが発生

Push rejected: Push master to origin/master was rejected by remote


Push rejected: Push master to origin/master was rejected by remote

ネットで調べて、pull origin masterしたけどダメだったので
プロジェクトディレクトリでターミナル開いてターミナルからGitコマンドを実行したら詳細なエラーがわかりました。

GH007: Your push would publish a private email address.


$git push origin master
Enumerating objects: 38, done.
Counting objects: 100% (38/38), done.
Delta compression using up to 8 threads
Compressing objects: 100% (16/16), done.
Writing objects: 100% (20/20), 2.37 KiB | 809.00 KiB/s, done.
Total 20 (delta 11), reused 0 (delta 0)
remote: Resolving deltas: 100% (11/11), completed with 11 local objects.
remote: error: GH007: Your push would publish a private email address.
remote: You can make your email public or disable this protection by visiting:
remote: http://github.com/settings/emails
To https://github.com/doroidpanic/test.git
 ! [remote rejected] master -> master (push declined due to email privacy restrictions)
error: failed to push some refs to 'https://github.com/doroidpanic/test.git'

GitHubのエラーコードGH007でした
Githubのアカウント設定で「Keep my email address private」なのに
そのメールアドレスが設定されているので止めてくれていたようです。

Commitに残るアドレスは


git config --global user.email

で確認できます。

GitHubにログインしてのメールアドレス設定のページにアクセスすると
「Primary email address」のところに自分の匿名?”@users.noreply.github.com”のメールアドレスが記載されています。
フォントの関係で見えにくいですが、説明文の中に@users.noreply.github.comがあります。

それをGitに設定しました。


 git config --global user.email  "@users.noreply.github.com"

ローカルコミットの取り消し


git reset --soft HEAD^

ターミナルでHeadしたら、AndroidStudio側の履歴も即反映されたので
もう一度コミットして詳細をみると、メールアドレスが@users.noreply.github.comになっています。
それから再度リモートプッシュしたら成功しました。


プッシュ成功: Pushed 1 commit to origin/master

https://github.com/settings/emails