「git サブモジュールの更新」が「致命的: リポジトリの所有権が疑わしいことが検出されました...」で失敗しました 質問する

「git サブモジュールの更新」が「致命的: リポジトリの所有権が疑わしいことが検出されました...」で失敗しました 質問する

Linuxワークステーションに新しいハードディスクドライブをマウントしました。うまく動作しているようです。新しいディスクにリポジトリをダウンロードしたいのですが、 を実行するとgit clone XXXうまく動作します。しかし、CDフォルダに を入れて実行しますgit submodule update --init --recursive

fatal: detected dubious ownership in repository at '/media/data/users/jhu3szh/serialize'
To add an exception for this directory, call:

git config --global --add safe.directory /media/data/users/jhu3szh/serialize

ちょっとした警告かなと思い、そのまま を実行しましたgit config --global --add safe.directory /media/data/users/jhu3szh/serialize。しかし、Git サブモジュールを再度実行すると、さらに同様のエラーが発生しました。リポジトリにはサブモジュールがたくさんあります。

何が起こったのか説明できますか?

ベストアンサー1

すべてのsafe.directory警告を黙らせる

要約

Git のシステムに関連するすべての警告を黙らせますsafe.directory。何をしているのかを必ず理解してください。

git config --global --add safe.directory '*'

ロングバージョン

この投稿から引用Gitでsafe.directoryに親ディレクトリを追加できない

私も同じ問題を抱えていましたが、無効にすることで解決しました安全なディレクトリチェックにより、「安全でないリポジトリ」エラーがすべて終了します。

これは次のコマンド1を実行することで実行できます。

git config --global --add safe.directory '*'

これにより、グローバル ファイルに次の設定が追加されます.gitconfig

[safe]
    directory = *

無効にする前に、このセキュリティ対策を理解しなぜ存在するのかリポジトリが共有ドライブに保存されている場合は、これを実行しないでください

ただし、常にマシンを単独で使用しており、リポジトリがローカルに保存されている場合はこのチェックを無効にしても、理論的にはリスクは増加しません。

また、現時点では、これをファイル パスと組み合わせることはできないことに注意してください。これは、私のケースでは関係があります。このコマンドはワイルドカード*を演算子として解釈しません本質的には、この"*"引数は「安全なリポジトリのチェックを無効にする/すべてのリポジトリを安全であると見なす」という意味になります。


1 - Windowsの特定のターミナルプログラムでこれが失敗する場合は、ワイルドカードをシングルクォーテーションではなくダブルクォーテーションで囲んでみてください(ViaこのGitHubの問題):git config --global --add safe.directory "*"

おすすめ記事