git init したリポジトリで fatal: detected dubious ownership in repository エラーが発生してしまう

経緯

Windows PC でとあるプロジェクトを作成して、 Git リポジトリにするために git init しました。

そのリポジトリを SourceTree で開こうとすると、以下のエラーが発生してしまいました。

---------------------------
エラーが発生しました
---------------------------
'git status' がコード 128 で終了しました: fatal: detected dubious ownership in repository at 'PATH\TO\ProjectDirectory'
'PATH\TO\ProjectDirectory' is owned by:
    BUILTIN/Administrators (S-X-X-XX-XXXXXXXXXX)
but the current user is:
    Contoso/JohnDoe (S-X-X-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX)
To add an exception for this directory, call:

    git config --global --add safe.directory PATH\TO\ProjectDirectory
 (PATH\TO\ProjectDirectory)
---------------------------
OK   
---------------------------

原因

エラー文の通りですが、当該プロジェクトのフォルダの所有者が Administrators になっており、自分 (JohnDoe) ではないため、 Git が安全ではないと判断したためだそうです。

ネット上で検索した限り、 Git のバージョンが 2.35.2 以降だと発生するようで、同現象は Git の脆弱性に対するセキュリティ対策のために盛り込まれたものの模様。

今回の場合、プロジェクトのフォルダの作成方法が「フォルダと内部ファイルをテンプレートとして自動生成するように自前で組んだ PowerShell で生成させた」というイレギュラーな作り方だったため、所有者が自分ではなくシステム側として Administrators グループになってしまったようです。

対処

git config --global --add safe.directory で「このフォルダは安全だ」と Git の設定に覚え込ませる、というのも対処法としては存在するようですが、今回はローカルのフォルダだったため普通に所有者を自分に変更しました。

当該フォルダの一階層上のフォルダに移動し、当該フォルダを右クリック→プロパティ→「セキュリティ」タブを開きます。

プロパティ→「セキュリティ」タブを開く
プロパティ→「セキュリティ」タブを開く

開いたら右下の「詳細設定」ボタンをクリック。

所有者を変更
所有者を変更

セキュリティの詳細設定のダイアログが開いたら、「所有者:」の項目の右端の「🛡変更」をクリックします。

ユーザを指定する
ユーザを指定する

「ユーザー、コンピューター、サービス アカウント または グループ の選択」ダイアログで一番下のテキストエリアに自分のユーザ名を入力して「名前を確認」で入力を補完し、「OK」ボタンをクリックしてフォルダの所有者を自分に変更します。

これでもう一度 SourceTree から当該プロジェクトを開き直したところ、エラーは発生せずにきちんと Git リポジトリとして認識されました。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。