Git子模块。 拉入超级的新克隆
好。 所以我认为我有这个舔...但现在....
我有一个项目,其中包括一个来自GitHub的小型图书馆作为子模块。 在该超级项目的原始版本中,子模块按预期工作。
然而,我只是克隆了超级项目,做了我认为我应该做的事情:“git submodule init”,获取了子模块的目录,但它是空的。
如果我现在试着去做
git submodule update
我明白了
fatal: Needed a single revision
Unable to find current revision in submodule path 'external_libraries/BEACHhtml'
如果我尝试
git submodule foreach git pull
我明白了
Entering 'external_libraries/BEACHhtml'
fatal: Where do you want to fetch from today?
Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.
在我的.git / config中,我有这个:
[submodule "external_libraries/BEACHhtml"]
url = git@github.com:interstar/BEACHhtml.git
在我的.gitmodules中我有这样的:
[submodule "external_libraries/BEACHhtml"]
path = external_libraries/BEACHhtml
url = git@github.com:interstar/BEACHhtml.git
任何人都知道缺少什么?
我和你有同样的问题。 这是git中的一个错误:http://lists-archives.com/git/785138-git-submodule-update-is-not-fail-safe.html
总之,对于您的问题,请尝试:
# rm -rf external_libraries/BEACHhtml
# git submodule update
看起来前面的checkout文件夹有问题,删除它,再次更新可以解决问题。
我有这个问题(片状网络,所以我得到了这样的子模块结帐),我解决了这个脚本(命名为git-submodule-fix
所以我可以运行它作为git submodule-fix
)
#!/bin/bash
for arg
do
echo $arg
find . -name "`basename $arg`" | grep "$arg$" | xargs rm -fr
done
如果你从git submodule update
得到这个
fatal: Needed a single revision
Unable to find current revision in submodule path 'some/submodule/path'
做
git submodule-fix some/submodule/path
git submodule update
通过删除2个目录并重新获取子模块来解决:
external_libraries/BEACHhtml
并查看.git
文件。 它的内容应该像gitdir: ../../.git/modules/external_libraries/BEACHhtml
external_libraries/BEACHhtml
和.git/modules/external_libraries/BEACHhtml
目录。 从现在开始, git submodule update
运行时没有错误。