Как только я запустил
git update submodule
Могу ли я сделать что-нибудь, чтобы он вернулся к тому, как это было до начала и обновления?
Как только я запустил
git update submodule
Могу ли я сделать что-нибудь, чтобы он вернулся к тому, как это было до начала и обновления?
Вы говорите, что хотите вернуться к init и обновить, что будет в том случае, когда подмодуль все еще присутствует в .gitmodules
, но является пустой каталог, который не зарегистрирован в .git/config
.
Предположим, что ваш подмодуль называется foo/bar
, тогда вы можете сделать следующее:
# Move the submodule out of your repository, just in case you have changes
# in there that you realise afterwards that you'd like to preserve:
mv foo/bar/ ~/backups/old-foo-bar/
# Recreate the submodule directory, but empty this time:
mkdir foo/bar/
# Remove all the config variables associated with that submodule:
git config --remove-section submodule.foo/bar
# Note that the submodule name is *without* the trailing slash
Попробуйте (с git1.8.3, 22 апреля 2013 г.) a:
git submodule deinit
(см. "Как удалить подмодуль Git?)
Это удаляет весь раздел
submodule.<name>
из.git/config
либо для данного подмодуля (s)
Возможно, вам придется удалить рабочее дерево для этого подмодуля.
Если изменения были совершены, вы должны проверить reflog:
git reflog
Как только вы обнаружите, что набор изменений вы потеряли, вы можете снова объединить его.
Если ваши изменения не были совершены, они не могут быть восстановлены.