fatal: detected dubious ownership in repository の対処
結論を先に。このエラーは、Gitリポジトリの所有者と、いまgitを実行しているユーザーが違うときに、安全のためGitが操作を止めている状態です。そのパスを安全と認める設定(safe.directory)に追加すれば直ります。
fatal: detected dubious ownership in repository at '/path/to/repo'To add an exception for this directory, call: git config --global --add safe.directory /path/to/repo原因
Git 2.35.2 以降は、リポジトリの所有者と実行ユーザーが一致しないと操作を拒否します。よくあるのは、sudo で作ったディレクトリを一般ユーザーで触る、root所有のボリュームをマウントしている、WindowsやDocker・共有ドライブでファイルの所有者が変わっている、といったケースです。乗っ取り対策の安全機構なので、エラー自体は正しい挙動です。
対処
- まず本当に自分のリポジトリか確認する(身に覚えのないパスなら触らない)。問題なければ、エラーメッセージが案内するコマンドをそのまま実行する。
git config --global --add safe.directory /path/to/repo- 所有者そのものを直せるなら、そちらが根本対処。実行ユーザーに揃える。
sudo chown -R "$(id -un):$(id -gn)" /path/to/repo- CIやコンテナなど、毎回パスが変わって面倒な場合は全許可もできる。ただし共有マシンでは安全機構を無効化するので避ける。
git config --global --add safe.directory '*'まとめ
- 原因は「リポジトリの所有者 ≠ 実行ユーザー」の安全チェック
- 自分のリポジトリだと確認してから safe.directory に登録
- 根本的には chown で所有者を実行ユーザーに揃える
'*'の全許可は共有環境では使わない