当添加git子模块时,“在一个尚未生成的分支上”。

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我试图在我的.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复制到一个测试目录(而不是通过子模块命令),它可以正常工作,并创建预期的文件。

提问于
用户回答回答于

要修复该错误,应该删除与子模块内部路径相同的文件夹.git/modules/ 目录

当子模块添加子模块时,对于子模块的url不正确时,可能会发生此错误。

用户回答回答于

需要添加一个子模块。现有的回购,该回购需要处于添加和提交子模块链接的状态,子模块repo本身必须有一个提交来签出。

现在,如果可以在其他地方创建一个常规的克隆,那么子模块回购本身就必须是正常的。然而,看起来submodule add如果回购是空的,而克隆没有。这家伙表明只要运行相同的程序就可以解决这个问题。submodule add再来一次命令。

如果内部回购是空的,检查你想要的回购子模块。切换到运行的同一目录。git submodule add,然后git status,和git branch以验证包含REPO至少创建了一个分支,并且没有处于奇怪的状态。

扫码关注云+社区