🍺

TortoiseGitでGit Cloneが成功するまで頑張った話

3 min read

Zenn に登録してみた

調べたこと等を記録する場所としてZennに登録することにしました。

Googleアカウントがあるとすぐ終わりますね。

で、使い始める前に「よくある質問」の部分を眺めると「GitHubリポジトリとの連携とは?」って項目があるじゃないですか。

なるほど~と思って早速Zenn用にGitHubのリポジトリを作成しました。

Zenn CLIはDocker内でグルーバルインストールすることで難なく導入完了。

ローカルにさっき作ったリポジトリを「TortoiseGit」でチェックアウトしようとした際に事件発生!

TortoiseGitでチェックアウトが上手くいかない

リポジトリのURLを指定して、
ローカルのチェックアウト先を指定して、
いざ、チェックアウト!

ユーザー名とパスワードが聞かれる

ユーザー名とパスワードが聞かれる

ユーザー名とパスワードが聞かれる

何度聞くのか。[1]

TortoiseGitでチェックアウトが上手くくようにしたい

どうもエラー内容を読むと、

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

と書いてます。パスワード認証位ユーザ単位で選ばせて欲しいよと思いつつも、リンク先を参照してみる。

Beginning August 13, 2021, we will no longer accept account passwords when authenticating Git operations and will require the use of token-based authentication, such as a personal access token (for developers) or an OAuth or GitHub App installation token (for integrators) for all authenticated Git operations on GitHub.com. You may also continue using SSH keys where you prefer.

と書いてるので、とりあえず更にリンク先を参照してみる。

Connecting over HTTPS (recommended)
If you clone with HTTPS, you can cache your GitHub credentials in Git using a credential helper.

なるほど、SSH認証から逃げることは可能っぽい。引き続き更にリンク先を参照してみる。

Install GitHub CLI on macOS, Windows, or Linux.
In the command line, enter gh auth login, then follow the prompts.

とりあえずGitHub CLIというものをインストールして、「gh auth login」と実行しろと。なるほどね?

使用しているのがWindowsで、特にパッケージマネージャーは導入していないので、
https://github.com/cli/cli#signed-msi から「gh_2.1.0_windows_amd64.msi」をダウンロード&実行

引き続き cmd を開いて「gh auth login」を実行……するもgitが無い的なエラーが発生[2]

右クリックメニューの「Git Bash Here」でMINGWのコンソールを開いて実行するも、

could not prompt: Incorrect function.
You appear to be running in MinTTY without pseudo terminal support.
To learn about workarounds for this error, run: gh help mintty

と言われる。

ググると https://github.com/cli/cli/issues/404 を発見。

You can prefix any invocation of gh with winpty which also fixes the issue. For example:
winpty gh auth login
This could be used as an alias if need be.

ほうほう、エイリアスですか。

MINGWのコンソールを開いて今度は「winpty gh auth login」を実行。
お、First copy your one-time codeと聞かれてブラウザが開いた!

コンソールに表示されていた8桁のコードを入力して、使うことを承認して……

Authentication complete.

完了したよ、やったー

もう一度、リポジトリのURLを指定して、
ローカルのチェックアウト先を指定して、
いざ、チェックアウト!

できたー

まとめ

今までパスワード認証を利用していたのにGit Cloneが出来なくなった場合は

  1. GitHub CLIをインストールして
  2. コンソールで「gh auth login」を実行
    • without pseudo terminal support とエラーが表示された場合は代わりに「winpty gh auth login」を実行

お疲れさまでした。

脚注
  1. この話の本筋では無いですが、以前から何故か毎回三度聞かれていて、1,2回目は無視していました ↩︎

  2. これを書く為にWindows サンドボックスで再現しながら作業していたのですが、これは再現ならず…… ↩︎

Discussion

ログインするとコメントできます