テクノロジー · 実用ガイド
Git の dubious ownership?ユーザー・所有者・信頼スコープを先に証明
safe.directory=* の前に、実行中の Git、OS ユーザー、実パス所有者、保護された設定を監査します。

dubious ownership は単なる権限エラーではなくセキュリティ境界です。まず、どの Git がどのユーザーでどの実パスを拒否したかを証明します。
予期しない所有者、ランチャー、共有リポジトリ、設定スコープを分離して最小の修復を選びます。
失敗コンテキストを固定
所有権や設定を変える前に、完全なエラー、コマンド、拒否されたパス、実行環境を保存します。
chmod、再帰 chown、再 clone、safe.directory=* から始めず、分岐判断の証拠を残します。
実行中の Git とユーザーを証明
失敗環境で Git の場所、版、whoami、id、HOME、サービスユーザー、SUDO_UID を記録します。
GUI、WSL、CI、端末は別の Git、ユーザー、設定を使う場合があります。
実パスと所有者を確認
エラーのパスを realpath、stat、ls -ld、Get-Acl で調べ、親ディレクトリも確認します。
個人 clone の誤所有、共有サービス、UID 変換 mount、NAS、WSL を区別します。
信頼設定の出所を監査
同じ環境で safe.directory の origin と scope を表示し、global と system 設定を確認します。
local 設定は自分を信頼済みにできません。パス表記、HOME、クライアント/サーバー差も確認します。
最小の修復を選択
個人 clone の所有者が誤っているなら直し、意図した共有だけ正確な絶対パスを登録します。
safe.directory=* は診断ではなく完全な無効化です。広い chmod や chown を代用しません。
環境境界を明示
GUI、WSL、コンテナ、CI、sudo、SSH の Git、ユーザー、HOME、mount 所有者を比較します。
クライアント設定はサーバー側の失敗を直せません。分岐は明確な所有者か正確な例外で終えます。
検証して戻せる記録を残す
元の環境で元コマンドと読み取り専用操作を再実行し、設定の origin と scope を再確認します。
所有者または例外、設定ファイル、理由、削除コマンドを記録し、他の場所の保護を維持します。
