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 "*"