"你是一个尚未出生的分支"添加git子模块时

时间:2012-08-09 15:51:48

标签: git git-submodules

我试图在我的.vim/bundles目录中添加一些子模块,当我尝试添加这个特殊的repo时,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'

知道是什么原因引起的吗?

如果我将相同的repo克隆到测试目录(而不是通过子模块命令),它可以正常工作,并创建预期的文件。

4 个答案:

答案 0 :(得分:203)

要修复该错误,您应该删除与.git/modules/目录中的子模块具有相同路径的文件夹。当第一次添加子模块的url对于子模块不正确时,可能会发生此错误。

答案 1 :(得分:12)

您需要在现有仓库中添加子模块 ,该仓库需要处于添加&状态的状态。提交子模块链接,子模块repo本身必须提交签出。

现在,如果您可以在其他地方创建常规克隆,则子模块repo本身必须正常。但是,如果repo为空,而克隆没有,则看起来submodule add会抱怨。 This guy建议只需再次运行相同的submodule add命令即可​​解决此问题。

如果内部仓库为空,请检查您要包含子模块的仓库。切换到您运行git submodule add的同一目录,然后运行git statusgit branch以验证您的包含repo是否至少创建了一个分支并且不处于奇怪状态。< / p>

答案 2 :(得分:11)

如果要添加的子模块没有- (void)textFieldDidEndEditing:(UITextField *)textField { // Start showing UIActivityIndicator // implement block base web service call to check your user id availability. I will recommended NSURLConnection wrapper base block - http://stackoverflow.com/questions/14914480/nsurlconnection-with-blocks // on results stop activity and show your desire image icon } 分支,则会发生此错误。如果要在添加子模块(例如master)时使用其他分支,可以使用以下命令:

develop

答案 3 :(得分:0)

正如@ drew-noakes所提到的,这可能是因为尝试使用 .gitignore 文件中列出的目录名添加子模块。