LoginSignup
15
10

TortoiseGitで「fatal: unsafe repository」なエラー

Last updated at Posted at 2022-04-20
git.exe checkout master --
fatal: unsafe repository ('//wsl.localhost/Ubuntu/home/user1/my-project' is owned by someone else)
To add an exception for this directory, call:

git config --global --add safe.directory '%(prefix)///wsl.localhost/Ubuntu/home/user1/my-project'

gitは正常に終了しませんでした (終了コード 128) (281 ms @ 2022/04/20 22:30:48)

Gitを最新版にアップデートしたところ、TortoiseGitでコミットやブランチ切り替えをしようとするとexit status 128エラーが表示されて処理を停止するようになりました。

解決方法

https://qiita.com/LemonmanNo39/items/e92ed9e3b9c812238006
まず前提として、上記の記事に書いてあるように、wsl側のホームディレクトリ内にプロジェクトを配置しているということ。ホスト側のエディタで編集するためにDockerのマウント対象にしているような使い方です。wsl本来の使い方に沿っているので、それ自体は問題ないです。でもこの使い方をしている人が今回のエラーに悩まされます。

TottoiseGitとwslを使っているということは、WindowsとwslそれぞれにGitがインストールされているということになります。TortoiseGitはWindows側のGit(git.exe)を使います。Windows側のGitでwsl側のGitリポジトリを操作しようとする。最新のGitでは、こういうことをするとエラーになります。

エラーメッセージに表示されているとおり、

git config --global --add safe.directory '%(prefix)///wsl.localhost/Ubuntu/home/user1/my-project'

上記をコピペで実行すれば解決です。ただしwsl側で実行するとwsl側の.gitconfigを更新してしまうため解決しません。 Windows側で実行する必要があります。普通にPowerShellを開けば「Windows側」です。

これにより.gitconfigファイルに設定が追加されます。気になる人は開いて確認してみてください。

なんでこんなエラーが出るようになったのかというと、セキュリティ上の理由だそうです。

https://gigazine.net/news/20220414-git-security-vulnerability/
(2022-04-22追記)Gigazineに記事が出てた。Windowsとかに限った話ではなく、管理をしっかりやってる環境は影響を受けそうです。でも理屈を理解すると納得という感じです。エラーメッセージに書いてあるとおりにするだけで解決するので、メッセージが英語でも慌てずに読むこと。

SourceTreeの場合は?

たぶんSourceTreeでも最新版をインストールした場合は同様の状態になると思います。SourceTreeのオプション設定を見たところ、SourceTreeをアップデートしても内蔵のGitはアップデートされないので、2020年4月以前からSourceTreeを使っている場合は影響を受けません。

Visual Studio Codeの場合 (2022-04-22追記)

そういえばwsl領域内でvscodeのGit関連の機能が動作しなくなってたのを思い出した。さっき見たら解決してました。今回の設定変更のおかげだと思います。

ChatGPTに聞いてみた (2024-02-14追記)

https://chat.openai.com/share/d4d018c1-c802-4db9-a304-4d5a13815776
当時ChatGPTがあればすぐ解決できた。

15
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
10