124

ディレクトリにいくつかのサブモジュールを追加しようとしていますが.vim/bundles、この特定のレポを追加しようとすると、Git でこれまでに見たことのない奇妙なエラーが表示されます。

$ git submodule add -f git://github.com/derekwyatt/vim-scala.git .vim/bundle/vim-scala
fatal: You are on a branch yet to be born
Unable to checkout submodule '.vim/bundle/vim-scala'

何がこれを引き起こす可能性がありますか?

同じレポをテスト ディレクトリに複製すると (submodule コマンドではなく)、正常に動作し、期待されるファイルが作成されます。

4

4 に答える 4

219

このエラーを修正するには、.git/modules/ディレクトリ内のサブモジュールへの同じパスを持つフォルダーを削除する必要があります。このエラーは、サブモジュールが初めて追加されたときにサブモジュールの URL が正しくなかった場合に発生する可能性があります。

于 2012-08-22T11:53:21.797 に答える
15

masterこのエラーは、ブランチを持たないサブモジュールを追加している場合に発生する可能性があります。サブモジュールを追加するときに別のブランチを使用する場合 (developたとえば)、次のコマンドを使用できます。

git submodule add -b <branch> <repository>
于 2015-05-22T09:25:21.430 に答える
13

既存のリポジトリ内にサブモジュールを追加する必要があります。そのリポジトリは、サブモジュールリンクを追加およびコミットできる状態である必要があり、サブモジュールリポジトリ自体にチェックアウトするためのコミットが必要です。

ここで、他の場所で通常のクローンを作成できる場合は、サブモジュールリポジトリ自体に問題がない必要があります。ただし、submodule addクローンが空ではないのにリポジトリが空の場合は文句を言うように見えます。この男submodule addは、同じコマンドをもう一度実行するだけでこれが修正可能であることを示唆しています。

内部リポジトリが空でない場合は、サブモジュールを含めるリポジトリを確認してください。を実行したのと同じディレクトリに移動しgit submodule add、を実行git statusgit branchて、含まれているリポジトリに少なくとも1つのブランチが作成されており、奇妙な状態になっていないことを確認します。

于 2012-08-09T17:26:48.273 に答える