パスワードは合ってるはずなのに、なんでpushできないんだろ…?
GitHubでローカルリポジトリからリモートリポジトリにpushする時に失敗することがあります。
その失敗する原因で最も多いのが、GitHubで直接ファイルの編集や追加・削除などの作業をして、ローカルリポジトリ(パソコン側のリポジトリ)とリモートリポジトリ(GitHub側のリポジトリ)の状態が変わってしまうことだと思いますが、他にもいくつかpushが失敗する原因があります。
例えば、GitHubで2段階認証を設定すると、正しいusername(ユーザー名)とpassword(パスワード)を入力してもpushが失敗します。
しかも、僕の記憶が正しければ、「どっちかが違うよ〜」というエラーメッセージしか表示されないんですよね。どっちも合ってるのに。
では、どうすればいいのかと言うと、実はこのパスワードに入力しなければいけないのは「アクセストークン」というGitHubのサイトで取得する文字列なんです。
ということで今回はこのアクセストークンの取得から入力までの一連の流れを紹介したいと思います。
【参考】Creating a personal access token for the command line
アクセストークンを取得する
アクセストークンを取得する手順は以下の通りです。
GitHubのアカウントメニュー「Settings」をクリック。
「Developer settings」をクリック。
「Generate new token」をクリック。
「Token description」の欄にトークンの説明を入力し、「repo」にチェック。
「Generate token」をクリック。
文字列が表示されるので、それをコピーします。
パスワードの欄にアクセストークンを入力する
アクセストークンを生成してコピーしたら、後はそれをターミナルに貼り付けるだけです。
※パスワードは入力しても貼り付けても表面上は変化しませんが、ちゃんと入力されています。
「httpsのURLの場合は2段階認証をオンにするとpushできない」みたいな情報もけっこうありますが問題なくpushできるのでご安心ください。(昔の話ですかね?)