2021年8月13日のパスワード認証廃止に伴い、「個人アクセストークン」に切り替えようとしましたがSousetreeからGitHubにpushできず苦労しました。そこで、解決法のメモを紹介したいと思います。OSはWindows10です。
GitHub側でトークンを作成する手順は簡単ですが、 Soucetree側の設定がうまくいかず時間をとられてしまいました。
なお、私はSoucetreeVer.3.4.5で実行しましたが、Ver.3.4.5は上記の状況とは別にクローンの時にフリーズするエラーがあるようですので、 Ver.3.4.5 はアンインストールして、Ver.3.4.4をインストールした方がよいと思います。
1.エラーの状況
エラーの状況は以下の通りです。
- SoucetreeからGitHubにpushし、Select a credential helperで<no helper>を選択しても、エラーが発生してpushできない。バグ?設定ミス?
- SoucetreeからGitHubにpushし、Select a credential helperでmanagerを選択した時に表示されるWindowにユーザー名、トークンを入力しても、エラーが発生してpushできない。
- Soucetreeからターミナルを起動し、「git push origin master」を実行するとpushできる。
2.解決方法
他に解決方法があるのかもしれませんが、私は以下の手順で解決しました。
(1) トークンの作成
GitHub側でトークンを生成します。
- 右上のプロフィール画像 > Settingsをクリック
- 左サイドバーのDeveloper settingsをクリック
- 左サイドバーのPersonal access tokensをクリック
- Generate new token をクリック
- Select scopesでトークンの適用範囲をクリック(とりあえず、repoとuserだけをチェック)
- noteにトークンの説明を記載(自分用のメモ)
- トークンの有効期限を入力
- 下部のGenerate tokenをクリック
- トークンをクリップボードにコピー(ページを離れると2度と表示されない)
(2) Sourcetree側の設定
SourceTree側の設定は以下の通りです。
- ツール > オプション > 認証 > アカウントで追加ボタンをクリック
- ホスティングサービス:Githubを選択
- 優先するプロトコル:HTTPSを選択
- 認証:Basicを選択
- ユーザー名:ユーザー名を入力
- 「パスワードを再読込」をクリック
- パスワードに先ほどGitHubでコピーしたトークンを入力(ユーザー名は入力済みになっている)
- OKボタンを押す
(3) SourceTree側におけるpushの操作手順
以下の手順でpushを行います。上記「(2) Soucetree側の設定」を行わなければ以下の手順でmanagerを選択してもエラーが発生します。
- pushのボタンを押す
- Credential Helper SelectorのWindowが表示されるのでmanagerを選択する。(ここで<no helper>を選択するとエラーになる)
- Selectボタンをクリック
- Credential Helper SelectorのWindowがもう一度表示されるが、再びmanagerを選択し、Selectボタンをクリック
以上で無事にSourceTreeからpushすることができました。