最終更新日:
2024年4月4日
このページの目次
前書き
今回のページで書いている事は GitHub のリモートリポジトリにアップロードの様な事をした時の事を書いています。
一応、前回のページで書いた事の続きの内容になっています。
ただ、今回の事と前回の事では、起きた問題の原因が関係ない事であるため、前回のページを見らずとも問題なく読むことはできると思います。
GitHub でメールの設定を private に変えたので git push が出来なかった事が原因
GitHub でリモートリポジトリを新規でつくり、そこに git push を使ってローカルのファイルを上げようとしたのですがエラーになってしまいました。
以下のは、 GitBash のコンソールの再現です。
■■■■■■■■■■MINGW64■■■■■■■(main)
$ git push -u origin main
Enter passphrase for key ■■■■■■■■■■:
Enumerating objects: 435, done.
Counting objects: 100% (435/435), done.
Delta compression using up to 4 threads
Compressing objects: 100% (426/426), done.
writing objects: 100% (434/434), 313.25 KiB | 960.00 KiB/s, done.
Total 434 (delta 230), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (230/230), done.
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 github.com:■■■■■■■■■■
! [remote rejected] main -> main (push declined due to email privacy restrictions)
error: failed to push some refs to 'github.com■■■■■■■■■■'
■■■■■■■■■■MINGW64■■■■■■■(main)
$
エラーの記述の中に publish とか private email とかが書かれていたので、GitHub のメールに関係する事が原因だと思いました。
そういえば TextRunRun を公開する準備として、色々設定したという事があったため、気づかない内にメールの個所も扱っていたようです。
( 正直あまり覚えていませんでした。 )
GitHub のWebサイトの中の Settings > Emails とたどっていくと GitHub のメールの設定の画面にいきます。
その中にある
Keep my email addresses private
の設定と、
その下にある
Block command line pushes that expose my email
の設定が今回のエラーの原因の様でした。
原因に行きついたのも、自分で気づいたのではなく以下のWebサイトのおかげで気づく事ができました。
外様のサイト
以下のリンクは、この TextRunRun のブログと全く関係の無い他の方のWebサイトの記事です。
参考サイト
エラーの中に
remote: error: GH007: Your push would publish a private email address.
という記述があったので、メールをプライベート ( 非公開 ) にする設定にしている事がエラーの原因だと予想できます。
予測がつくような事なのですが、実際には上記のWebサイトをみて気づいたので自力で気づけたわけではありませんでした。
先程挙げたWebサイトには、メールアドレスを隠すようにしたままで対処する方法も載っていたため、その方法を使う事にしました。
以下にその方法と、メールの設定を見直して気づいた事について書いていきます。
メールの設定を private にした場合は、代替えメールを指定しておく
GitHub のメールの設定にあった、
Keep my email addresses private
の設定のとこに小さい文字で説明が書いてありました。
どうも、この設定にチェックを入れるとコマンドラインから使用できなくなるので、メールの設定の方に代替えのメールをしておくようにという趣旨の事が書いています。
その説明には、
<数字 9 桁くらい>+<ユーザー名>users.noreply.github.com
の文字列があり、この文字列をメールの設定に使用する様にといった事があります。
あと、この設定の下にある
Block command line pushes that expose my email
の設定の方はチェックを外しておく必要があるようでした。
チェックをしておいてもコマンドラインから使用はできるようですが、警告がでるようになるそうです。
●
代替えメールを設定する場合
ローカルの Git 側の設定のメールの設定を変えました。
git config –global user.email [ コピーしたアドレス ]
これを設定する事で、メールが隠れたままの設定にしてもコマンドラインから push ができる様になります。
git push を失敗していたなら
さて、push はできる様になったわけですが、 git push を失敗した後であるなら、、場合によってはそれの修正をしなければならないかもしれません。
git reset –soft HEAD^
これを使用して修正しておく必要があるかもしれません。
git log を使用してみて、 push をした後の変更があった場合にこの修正がいるので、 git log の結果次第になるので必要かどうかは何とも言えません。
push の失敗の仕方によっては上記のコマンドを使う必要があると思います。
今回のこのページは、自分が git push を失敗した事について書いているものなのですが、自分の場合は git log で調べてみると、 push をしたという変更が見られなかったため、上記の
git reset –soft HEAD^
のコマンドを使う事はしませんでした。
自分が git push を失敗した事についての続きの話になりますが、後は
git push -u origin main
これを実行すれば、無事に GitHub に上げる事ができました。
後書き
前回のページと今回のページで、 GitHub に git push を使って上げる時に失敗した事について書いていきました。
たわいもない出来事と大した事のない説明だったかもしれませんが、自分が今後同じトラブルで引っかかってしまい、しかも解決方法を忘れている場合があるので一応この出来事を書いておく事にしました。
ついでに同じトラブルで困っている方がいたら役に立つかもしれないと思ったところもあります。
今回のページで書いておきたかった事は以上です。
コメントを残す