Githubで2段階認証を設定しhttpsリポジトリにpushする

毎回この設定を忘れるのでメモ

Githubでセキュリティ面などから二段階認証を設定する。
ただこの二段階認証を設定した状態でpush先のリモートとしてhttpsプロトコルを利用すると問題が生じる。

問題としてはpush時にusernameとパスワードを求められてログイン時に使用しているusernameとパスワードを正しく入力してもエラーになってしまう。

$ git push origin master
Username for 'https://github.com': hatappi
Password for 'https://hatappi@github.com': 
remote: Invalid username or password.

ぐぐったりするとsshに切り替えていこうみたいな感じで書いてあってそれは分かるけど僕がやりたいのはそうじゃない

答えはGithub公式に書いてある
トークンを発行してpasswordを聞かれた時に入れると良いみたい!!
Creating a personal access token for the command line - User Documentation

これでhttpsをリモートに設定していてもpushができるようになる
ちなみにMacだとキーチェーンに保存されるので毎回いれなくて済むので楽!