Gitのdubious ownershipエラーの原因と解決策

冒頭まとめ fatal: detected dubious ownership in repository atは、Gitがリポジトリの所有者を確認し、現在Gitを実行している利用者と一致しないと判断したときに発生します。これはファイルを読み書きできないという意味ではなく、所有者の異なるリポジトリを信頼しないための安全機能です。 自分だけが使うフォルダなら、まず所有者を確認し、誤って別の利用者や管理者の所有になっている場合は所有者を直します。共有リポジトリやコンテナのように、所有者が異なる状態を意図している場合は、信頼できるパスだけをsafe.directoryへ登録してください。 git config --global --add safe.directory "<repository-path>" この設定は原因となった所有者の違いを解消するものではありません。指定したリポジトリを例外として信頼する設定です。内容を確認していないリポジトリや、外部から書き換えられるフォルダは登録しないでください。 エラーの概要 表示されるエラーは次の形式です。 fatal: detected dubious ownership in repository at '<path>' To add an exception for this directory, call: git config --global --add safe.directory <path> Gitは通常、Gitを実行している利用者が所有するリポジトリだけを信頼します。所有者が異なる場合、リポジトリ内の設定やフックを読み込む前に処理を止めます。Gitの公式文書では、所有者が異なっていても信頼するディレクトリをsafe.directoryで個別に登録できると説明されています。 このエラーはWindowsだけでなく、Linux、macOS、Dockerなどのコンテナ、CIでも発生します。特に、ファイルを作成した利用者とGitを実行する利用者が異なる環境で起こりやすくなります。 まず所有者と設定を確認する 先にsafe.directoryを追加するのではなく、誰がリポジトリを所有しているかを確認します。 LinuxやmacOSでは、次のコマンドでフォルダの所有者IDと現在の利用者IDを比較できます。 ls -ldn "<repository-path>" id -u WindowsのPowerShellでは、次のコマンドでフォルダの所有者と現在の利用者を確認できます。 (Get-Acl "C:\path\to\repository").Owner whoami /user すでに登録されているsafe.directoryと、その設定が書かれている場所は次のコマンドで確認できます。 git config --show-origin --get-all safe.directory 何も表示されない場合は、safe.directoryが登録されていません。 信頼できるリポジトリだけを登録する 共有フォルダやコンテナのマウント先など、所有者が異なる状態を意図している場合は、対象のリポジトリを個別に登録します。エラーメッセージに表示されたパスを確認し、絶対パスで指定してください。 git config --global --add safe.directory "<repository-path>" Windowsでは、次のようにスラッシュを使ったパスも指定できます。 git config --global --add safe.directory "C:/work/example" 設定を残さず、そのコマンドだけ実行したい場合は-cを使います。 ...

2026年9月18日 · ErrorLog