準備万端のつもりで、いざリモートリポジトリにpushしようとしたときに、エラーでpushできず、結構ハマってしまったので備忘録的に書き残しておく。
ここまでにやっておいたこと
- VSCodeとGitのインストール
- Gitにユーザー名とメールアドレスの登録
- GitHubアカウントを作成(メールアドレス認証済み)
- ローカルリポジトリに変更ファイルをcommit
- GirHubのリモートリポジトリとローカルリポジトリの紐づけ
と、ここまでやって、いざVSCodeでpushしたら、エラーになり、Gitにpushできなかった。
確認したこと
- Gitのバージョンは、2.26.2と新しい
- GitHubにログインする際の、ユーザー名とパスワードについては、一旦ログアウト→ログインしているので、正しいことは確認できている。
- コマンドプロンプトでは、pushできている
現象
VSCodeで、pushコマンドを叩いたら、「Logon failed, use ctrl+c to cancel basic credential prompt.」というエラーメッセージが出て、GitHubのログイン画面に正しいユーザー名とパスワードを入力しても、LOGONに失敗した旨のメッセージが出て、pushできない。
VSCodeでpushすると、GitHubのログイン画面が立ち上がる。
GitHubのユーザー名とパスワードを入力してLoginを押すと、VSCodeをGitHubにアクセスさせるか聞いてくるので、Continueをクリック。
Autorize githubをクリック
エラーになって pushできない。(こっちがオーノー!だっつーの。)
原因
Gitに登録していたユーザー名とメールアドレスのうち、メールアドレスがGitHubのメールアドレスと異なっていた。
対策
Gitのグローバルアカウントのメールアドレスを、Gitに登録したメールアドレスと同じになるように修正。
C:\Users\ユーザー名¥.gitconfig のemailに登録されているメアドを修正。
補足
一度、VSCode - GitHub 間の連携が取れれば、グローバルアカウントのメアドを別のものに変えても、pushの際にエラーにはならない。
但し、コミットした人が自分だと分かるようにちゃんと紐づけてね、というメッセージがでる。
VSCodeからpushできないという問題があるときは、Gitのユーザー名とメアドがGitHubのものと一致していることを、今一度確認してみるべし。
という教訓。
GitHubにローカルリポジトリの内容が反映される
これで、無事にGitHubに現在開発中のプロジェクトをアップロードできた。