Help us understand the problem. What is going on with this article?

GitHubの無料プライベートリポジトリにpushしようとしてエラーになったのを解決した

More than 1 year has passed since last update.

要点

  • GitHubアカウントのメールアドレスと、pushする時に使うメールアドレスは別物。
  • GitHub Desktop(Mac版)だけだと設定が直せないことがある。コマンドラインだいじ。
  • 解決方法はこれ↓ (ID+usernameの所は各自読みかえが必要です)
$ git config --global user.email ID+username@users.noreply.github.com
$ git commit --amend --reset-author

はじめに

先日(2019/1/7)、GitHubで無料ユーザでもプライベートリポジトリを持てるようになりましたね。
せっかくなので私も、手元にあるちょっとしたRailsプロジェクトをGitHubに上げてみようと思い立って試したところ、なかなかうまく行かない...

なお、環境は macOSX Mojave + VSCode 1.25.1 + Rails 5.2.2 + GitHub Desktop 1.5.1 です。

実施したこと

  • GitHubにログイン
  • GitHub Desktop をダウンロード&インストール
  • GitHubのWebサイト側でプライベートリポジトリを1つ作成
  • ローカルリポジトリと紐付け

このあたりまで、いくつかのサイトを確認しつつ、特に問題なく進行。

1つ目の問題

紐付けたリポジトリをGitHub Desktopから「Publish Branch」を実行しようとしたところ、
Cannot push these commits as they contain an email address marked as private on GitHub
というエラーが発生し、サーバにpushできません。

よくよく調べてみると、GitHubアカウントのメールアドレスと、pushする時に使うメールアドレスは別物であり、後者ではGitHub側から指定されたアドレスを使う必要があるようです。ここで設定したメールアドレスは公開情報になってしまうので。

そして、push用のアドレスは以下のいずれかとのこと。
- (2017/7/18以降に作成したアカウント) ID+ユーザ名@users.noreply.github.com
- (2017/7/18より前に作成したアカウント) ユーザ名@users.noreply.github.com

私の場合は、アカウント作成は2011年でしたので前者かと思いましたが、実は後者のアドレスになっていました。(ハマったポイントその1)
リポジトリを作成したのが今回が初めてだったからかもしれません。

2つ目の問題

登録すべきアドレスがわかったので、GitHub Desktopの「Preferences...」から「Git」タブの「Email」欄を修正します。
これで良しと思いながら「Publish Branch」を押すと、、、また同じエラー。
うまく反映できていないようです。(ハマったポイントその2)

次のように、コマンドでpushしようとしてもダメ。

$ git push -u origin master

ここで、小一時間ハマり続け、、、
諦めかけたところで、改めて上のコマンドの結果をよく見たら
[remote rejected] master -> master (push declined due to email privacy restrictions)
という文言が。

それを手がかりにし、ようやくたどり着いた解決策がこれでした。(再掲)

$ git config --global user.email ID+username@users.noreply.github.com
$ git commit --amend --reset-author

Authorの所に、通常のメールアドレスが入ってしまっていたのを、 --reset-author で修正したということですね。
--amend は既存のcommitに対して、新たなcommitを作らずに修正を入れるオプションのようです。

そして「Publish Branch...」を実施すると、、、無事にサーバ側へpushされてくれました!

めでたしめでたし。

参考リンク

ありがとうございました!

http://ryoichi0102.hatenablog.com/entry/2017/10/12/000713
http://takafumi-kimura.hatenablog.com/entry/2018/01/03/000000

最後に

別にGitHub Desktopなんて入れなくてもよかったのかも?
みなさま使っておられますか?

shozzy
個人開発やってます(dispbarcode.com)。Web系のシステム開発とデータ連携が得意。
https://shozzy.netlify.app/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした