签出过去的git子模块提交

签出过去的git子模块提交,git,Git,我正在做一个有很多子模块的项目。昨天,一切都很顺利,应用程序正在运行,等等。今天早上我运行了git submodules update之后,我在应用程序中收到了一个错误 $ git submodule update Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb' Submodule path 'vendor/plugins/pluginB': check

我正在做一个有很多子模块的项目。昨天,一切都很顺利,应用程序正在运行,等等。今天早上我运行了
git submodules update
之后,我在应用程序中收到了一个错误

$ git submodule update
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb'
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e'
那么,在我等待问题得到解决的同时,如何检查子模块的早期版本呢?我看到了一些关于解决方案的参考,但没有看到具体提到这个案例的示例

谢谢

编辑:如果您还可以帮助我理解/修复此问题(如何再次将
pluginA
pluginB
提交给参考头/主机),则可获得奖金:


对于第一种情况也是如此,您可以转到子模块dir并使用
git checkout签出您喜欢的任何版本

表示您已经完成了git拉取、获取文件和子模块并将其合并到项目中。
上游项目中的那些子模块中的SHA1(您一直使用的那个)已经更改

您可以将它们更改回(
git checkout aref
projectA
中,然后
cd..
git add-A;git commit-m“advance submodule to aref”
),如果需要,可以将这些子模块ref推回到上游

如果您需要在子模块更新之前知道子模块的确切SHA1,只需执行一个
git show previousProjectSHA1
previousProjectSHA1
是主项目更新之前的SHA1

您将看到如下内容:

new file mode 160000
index 0000000..4c4c5a2
这(4C5A2)是将它们恢复到以前状态所需的子模块SHA1

查看SO问题以了解有关子模块性质的更多信息。

我通过在子模块文件夹中手动签出master来解决“奖金”问题。
git checkout master
在子模块文件夹中,然后在superproject目录中执行git commit
。另请参见
$ git submodule update
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb'
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e'
new file mode 160000
index 0000000..4c4c5a2