SourceTreeのトラブル対処|起動しない・WSL2のリポジトリが開けない
/ 5 min read
Table of Contents
はじめに
SourceTreeで実際に遭遇したトラブルと、その対処をまとめました。
急に起動しなくなった
Windows版のSourceTreeが、ある日から起動しなくなることがあります。設定ファイルが壊れているのが原因なので、設定フォルダを削除すれば起動するようになります。
削除するのは次のフォルダです。
C:\Users\ユーザー名\AppData\Local\Atlassian\SourceTree.exe_Url_xxxxxxxxxxxxxx末尾の文字列は環境ごとに異なります。
WSL2上のリポジトリで git status error code 128 になる
Windows上のSourceTreeやVSCodeから、WSL2の中にあるリポジトリを開こうとすると発生するエラーです。
原因
gitの脆弱性対策に引っかかっています。
外部ストレージやネットワークドライブに置かれた .git フォルダを不用意に開くと、そこに仕込まれた設定によって任意のコマンドが実行される危険があります。gitはこれを防ぐため、所有者が異なるリポジトリを既定で拒否するようになりました。
WSL2上のファイルは、Windowsから見るとネットワークドライブ(\\wsl$\...)として扱われるため、この対策の対象になります。
解決方法
そのリポジトリが安全であることを、明示的に宣言します。
$ git config --global --add safe.directory "対象のファイルパス"Windowsではパスをダブルクォーテーションで囲むのがポイントです。囲まないと、パスに含まれる記号がうまく解釈されません。
.gitconfig を直接編集することもできます。ファイルは C:\Users\ユーザー名\.gitconfig にあります。
[safe] directory %(prefix)///wsl$/Ubuntu/home/ユーザー名/repository-name%(prefix)// という書き方は、UNCパス(\\wsl$\...)を指定するためのgitの記法です。
おわりに
どちらも「設定ファイルの場所」を知っていれば数分で解決する問題です。特に safe.directory のエラーは、gitのバージョンを上げた直後に急に出るようになるため、原因が分かりにくいものだと思います。
