结帐过去的git子模块提交

Rob*_*Rob 7 git

我正在开发一个有许多子模块的项目.昨天,一切都是桃子,应用程序正在运行等等.git submodules update今天早上我跑了之后,我收到了应用程序中的错误.

$ git submodule update
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb'
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e'
Run Code Online (Sandbox Code Playgroud)

那么在等待问题得到修复的同时,如何查看以前版本的子模块呢?我已经看过几个对解决方案的引用而没有真正看到一个具体提到这个案例的例子.

谢谢!

编辑:奖金,如果你也可以帮助我理解/解决这个问题(如何获得pluginApluginB再次参考head/master):

$ git submodule status
49d5cba84dcffc061db69813162d103feef31ecb vendor/plugins/pluginA (49d5cba)
4f442f0448c1826252933d5af8fb33cd64d76f6e vendor/plugins/pluginB (4f442f0)
558fd1a762d63562689e58cac50283192fde74d5 vendor/plugins/pluginC (heads/master)
4feb2c51148ebc4d4f80f9a64b9eabbfde5b13a3 vendor/plugins/pluginD (heads/master)
19dce61e256b0fc3f05342cdd3e4d21a434c0b87 vendor/plugins/pluginE (heads/master)
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 2

$ git submodule update
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb'
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e'
Run Code Online (Sandbox Code Playgroud)

意味着您已经完成了 git pull,将文件和子模块获取并合并到您的项目中。
上游项目(您已拉取的项目)中这些子模块的 SHA1 已更改。

您可以将它们更改回来(git checkout arefprojectA、thencd ..和 内git add -A; git commit -m "advance submodule to aref"),并根据需要将这些子模块引用推送(或不推送)回上游。

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

你会看到类似的东西:

new file mode 160000
index 0000000..4c4c5a2
Run Code Online (Sandbox Code Playgroud)

(4c4c5a2) 是您需要将它们恢复到之前状态的子模块 SHA1。

请参阅git submodule update SO 问题以了解有关子模块性质的更多信息。