Windows11で、cargo newで作ったgitリポジトリが「detected dubious ownership in repository」というエラーで使えない

にあえん

October 30, 2023

Windows11に乗り換えたばっかりのエンジニア、ナナオです。

やはり乗り換えると今までと使い勝手が変わるので、何かするたびにエラーになりますね。

今回はGit関連でエラーが起きたので備忘録を残します。

どんなエラー?

cargo newでCargoパッケージ作成すると、ありがたいことに最初からgit関連の設定もされた状態になっていると思いますが、そのパッケージ内でgitコマンドを使用するとこのようなエラーになってしまいました。

> git status
fatal: detected dubious ownership in repository at 'C:/Users/Nanao/Project/study/rust-playground'
'C:/Users/Nanao/Project/study/rust-playground/.git' is owned by:
        'S-1-5-32-544'
but the current user is:
        'S-1-5-21-2894757817-1525132421-3221859733-1001'
To add an exception for this directory, call:

        git config --global --add safe.directory C:/Users/Nanao/Project/study/rust-playground

このエラーはなんなの?

要は「このgitリポジトリの所有者はあなたじゃないから操作できませんよ」というエラーです。

結論としては以下のようなコマンドをPowerShell上で実行することで解決します。

takeown.exe /f [gitリポジトリのパス] /r | Out-Null

takeownはファイルの所有者を変更するコマンドです。

Windows�Ńt�@�C���̏��L�҂��ύX�����i�R�}���h�v�����v�g�ҁj�FTech TIPS - ��IT

Linuxのchownと同じようなものですね。

Linuxコマンド【 chown 】ファイルの所有者やグループを変更 - Linux入門 - Webkaru

このコマンドを使用して所有者を自身に再設定しています。

まとめ

いちいちこのコマンドで所有者を変更するのも面倒だなぁ…まぁ慣れればいいか…?

参考

krymtkts - git で local repo が自分のものじゃないとなったやつ