web-dev-qa-db-ja.com

gitサブモジュールを追加するとき、「あなたはまだ生まれていないブランチにいます」

私は.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'

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

(サブモジュールコマンドを使用せずに)テストディレクトリに同じリポジトリを複製すると、正常に機能し、期待されるファイルが作成されます。

114
matt b

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

204
lisachenko

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

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

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

12
Useless

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

git submodule add -b <branch> <repository>
11
k4nar

@ drew-noakesが示唆しているように、これは。gitignoreファイルにリストされているディレクトリ名を使用してサブモジュールを追加しようとしたことが原因である可能性があります。

0
John McFarlane