WSL2のgitで「Azure DevOps」に対してPATトークンなしでする方法
はじめに
に記載した「Git for Windows」のgit-credential-wincred.exeを間借りする方法で、
WSL2のgitもPATトークンの入力なしで使える話は、
リモートのリポジトリが「gitHub」だったときは、これでOK
リモートのリポジトリが「Azure DevOps」の場合では、これではうまくいかなかった
「Azure DevOps」は、Linux純正のgit-credential-managerを指定すると解決できた。
なぜかは不明です。Git for Windowsのそれを間借りする方法では、「Azure DevOps」ではうまくいかず、Linux純正のそれだと、うまくいく。 【 理由は知らん 】
Linux純正のgit-credential-managerは、aptパッケージマネージャでは、インストールできない
gitHubのサイトからおとしてきて、自分で配置する必要がある。
2025/06/24現在
のサイトより
上の図のとおり、
gcm-linux_amd64.2.6.1.tar.gz
を右クリして、リンクのアドレスをコピーすると
https://github.com/git-ecosystem/git-credential-manager/releases/download/v2.6.1/gcm-linux_amd64.2.6.1.tar.gz
のURLの文字列が得られる
これより先は、業務用に貸与されたPCで作業した内容なので、
作業時のコンソールログは、貼り付けられない
( この記事は、個人PCで記載 )
見ながら、個人PCで記事書いてる。
一般的なノウハウの話なので問題ないでしょう。 ( 秘匿性のある機密情報ではないため )
cd /tmp
で、/tmpに移動し
先ほど、コピーしたURLを利用して
wget https://github.com/git-ecosystem/git-credential-manager/releases/download/v2.6.1/gcm-linux_amd64.2.6.1.tar.gz
をする
gcm-linux_amd64.2.6.1.tar.gz
がダウンロードされるため、解凍する。
tar -xvzf gcm-linux_amd64.2.6.1.tar.gz
するとログに、
NOTICE
git-credential-manager
libSkiaSharp.so
libHarfBuzzSharp.so
の4ファイルを解凍したと表示され、/tmp上にこれらのファイルが展開される
NOTICEはテキストファイルで、
cat NOTICE
で注意事項など表示される。(英語)
git-credential-manager
に実行権限を与える
libSkiaSharp.so
libHarfBuzzSharp.so
は、そのままでよい
chmod +x ./git-credential-manager
その後、
git-credential-manager
libSkiaSharp.so
libHarfBuzzSharp.so
を
/usr/local/bin
に移動する。
sudo mv ./git-credential-manager /usr/local/bin/git-credential-manager
sudo mv ./libSkiaSharp.so /usr/local/bin/libSkiaSharp.so
sudo mv ./libHarfBuzzSharp.so /usr/local/bin/libHarfBuzzSharp.so
そしたら、
WSL2のgitコマンドが利用するcredential.helper
を上記のLinux純正のgit-credential-manager
にする。
git config --global credential.helper /usr/local/bin/git-credential-manager
git config --global credential.helper
とだけ、打ち込んだときに、
/usr/local/bin/git-credential-manager
が返ってくれば、設定ができている
ls -l /usr/local/bin/git-credential-manager
を打ち込んで、gitコマンドを打ち込む作業ユーザで実行権限があることを確認しておこう
このあたりができてないと、うまくいかないと思いますよ
Azure DevOpsの場合は、下記をやる必要がある。【 理由は知らん 】
git config --global credential.https://dev.azure.com.useHttpPath true
git config --global credential.https://dev.azure.com.useHttpPath
とだけ打ち込んで
true
が返ってきたら、設定ができている
Azure DevOpsの場合は、下記をやる必要がある。(その2)【 理由は知らん 】
git config --global credential.credentialStore cache
git config --global credential.credentialStore
とだけ打ち込んで
cache
が返ってきたら、設定ができている
ここまで、設定したらPATトークンなしでも、
git cloneに成功した。
途中でブラウザ起動し、英語で、「このままブラウザ閉じたら続行できる」意味内容の
メッセージが出てくる
gitのコマンドはターミナル上で停止しているが、
そのブラウザのタブを閉じたら、
gitコマンド側が続きを継続するような流れになったりする。
おそらく、
git config --global credential.credentialStore cache
は、そこらへんがうまく動くようにするための設定ではないかと思う。が、詳細は知らん
なお、もし、
WSL2のCLIからのブラウザ起動がうまくできない問題があるため
この一旦、ブラウザを起動して閉じたら、gitのコマンドが継続する流れの動きが
うまく動かないときは。(結果として、gitコマンドが動作しない、現象があるときは)
のやり方で
「wslu : WSL用のユーティリティコレクション」
をインストールすることで解決できるのではないかと思う。
以上
Discussion