Я работаю над проектом, где существует много подмодулей. Вчера, все было замечательно, приложение работало, и т.д. После того, как я работал git submodules update
этим утром я получаю ошибку в приложении.
$ git submodule update
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb'
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e'
Таким образом, как я иду о проверке предыдущей версии подмодуля (подмодулей), в то время как я ожидаю проблемы, которая будет зафиксирована? Я видел несколько ссылок на решения, действительно не видя примера, который конкретно упомянул этот случай.
Спасибо!
Править: премия, если можно также помочь мне понять/устранить это (как добраться pluginA
и pluginB
к ссылочным головам/ведущему устройству снова):
$ 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)
$ git submodule update
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb'
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e'
означает, что вы сделали git pull, собрав и объединив файлы и подмодули в свой проект.
SHA1 этих подмодулей в проекте upstream (тот, из которого вы делали pull) изменился.
Вы можете изменить их обратно (git checkout aref
внутри projectA
, затем cd ...
и git add -A; git commit -m "advance submodule to aref"
), и вытолкнуть (или нет) эти подмодули обратно в upstream, если хотите.
Если вам нужно узнать точный SHA1 вашего подмодуля до обновления подмодуля, просто сделайте git show previousProjectSHA1
(previousProjectSHA1
- предыдущий SHA1 до обновления основного проекта
Вы увидите что-то вроде:
new file mode 160000
index 0000000..4c4c5a2
Это (4c4c5a2) - SHA1 подмодуля, который вам нужен для восстановления его прежнего состояния.
Смотрите git submodule update Вопрос SO, чтобы узнать больше о природе субмодулей.
То же самое для первого случая, вы идете в каталог субмодулей и проверяете любую версию, которая вам нравится с помощью git checkout