[英]“You are on a branch yet to be born” when adding git submodule
我试图在我的.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克隆到测试目录(而不是通过submodule命令),它可以正常工作,并创建预期的文件。
要修复该错误,您应该删除与.git/modules/
目录.git/modules/
相同路径的文件夹。 当添加子模块时第一次使用子模块的url不正确时,可能会发生此错误。
您需要在现有仓库中添加子模块,该仓库需要处于添加和提交子模块链接的状态, 并且子模块仓库本身必须具有检出的提交。
现在,如果您可以在其他地方创建常规克隆,则子模块repo本身必须正常。 但是,如果repo为空而子克隆没有,则看起来像submodule add
抱怨。 这家伙建议只需再次运行相同的submodule add
命令就可以解决此问题。
如果内部仓库不为空,请检查要包含子模块的仓库。 更改到运行git submodule add
的同一目录,并运行git status
和git branch
以验证包含的repo是否至少创建了一个分支并且不处于奇怪的状态。
如果要添加没有master
分支的子模块,则会发生此错误。 如果要在添加子模块(例如, develop
)时使用其他分支,可以使用以下命令:
git submodule add -b <branch> <repository>
正如@ drew-noakes所暗示的那样,这可能是因为尝试使用.gitignore文件中列出的目录名添加子模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.