1. ホーム
  2. git

[解決済み] サブモジュールでないパスに対するサブモジュールのマッピングが .gitmodule に見つからない

2022-02-16 13:44:13

質問

にサブモジュールがあるプロジェクトがあります。 lib/three20

私の .gitmodule ファイルは次のようになります。

[submodule "lib/three20"]
    path = lib/three20
    url = git://github.com/facebook/three20.git

過去にこれをクローンしたことがありますが、エラーはありませんでした( git submodule init に続いて git submodule update )で、しばらくは使えています。

これを新しいマシンにクローンしようとしたら、今度は git submodule init :

No submodule mapping found in .gitmodules for path 'Classes/Support/Three20'

このパスは、Xcodeの空のフォルダで、他のディレクトリのプロジェクトを格納するために使用しているだけです。 の一部ではありません。 .gitmodules ファイルからこのパスを取得しているのかがわかりません。

何か思い当たることはありますか?

解決方法は?

以下 ラジブチョードリー 's 回答 (アップヴォートされた)。 使用 git rm コマンドを使用することをお勧めします。 特別項目 を示すインデックスで、サブモジュール (特別なモードを持つ'フォルダ'である 160000 ).

もし、その特別なエントリー パス の中で参照されていない .gitmodule (のように)。 Classes/Support/Three20 を削除すると、" にサブモジュールのマッピングが見つかりませんでした。 .gitmodules パスに対して "のエラーメッセージが表示されます。

サブモジュールを参照しているインデックス内のすべてのエントリを確認することができます。

git ls-files --stage | grep 160000


前回の回答(2010年11月)

初期サブモジュールを正しく宣言していない可能性があります。 私の古い答え を使用しているにもかかわらず .gitmodule は、その中で問題なく見えるパスがあります)。

このスレッド が言及しています。

新しいクローンから 'git submodule init' を実行しても、同じエラーが発生しますか?
もしそうなら、何かが間違っています。

サブモジュールがなければ .gitmodules のサブモジュールへの参照は、すべて .git/configを作成し、Pikimalディレクトリに .git のディレクションを行います。
これで問題が解決した場合は、チェックインしてクルーズの作業コピーで同じことを行ってください。

当然ながら、メインの .gitmodules ファイルを作成し、他の余分な .gitmodules を作業ツリーに追加してください。


まだ、"不正なサブモジュールの初期化"のトピックです。 ジェフロミ は、実際には gitlink であるサブモジュールについて言及しています。

参照 未追跡のコンテンツを追跡するには? このようなディレクトリを本当のサブモジュールに変換するために