关于git:无法在子模块路径中找到当前的原始版本/主版本

Unable to find current origin/master revision in submodule path

在我的项目(使用git)中,我需要使用一个仍在进行中的库。 我决定为该库创建一个子模块,因为我想不时更新其最新版本(我不打算在那里进行更改)。

我做了:

1
2
3
4
git submodule add https://github.com/mb21/JSONedit.git
git commit -am 'added JSNedit submodule'
git push -u origin master
git pull origin master

然后,我确实在本地文件夹中看到了JSONedit文件夹,并且在线上看到了git文件夹中的链接。 但是当我执行git submodule update --remote JSONedit/时,出现以下错误:

1
2
fatal: Needed a single revision
Unable to find current origin/master revision in submodule path 'JSONedit'

有人知道这是怎么回事吗?


1
git pull --recurse-submodules

在主存储库中运行它可以解决问题。

或者,您可以在子模块中git checkout要从中拉出的分支,然后运行git pull

结果应该相同。


似乎该问题已在以下线程中解决:
Git子模块-拉入超级项目的新克隆。
简而言之,您应该尝试:

1
2
# rm -rf JSONedit
# git submodule update


我遇到了同样的问题。 解决了 子模块将存储在其中的文件夹在那里。 当我手动删除文件夹时,它得到解决。