Могу ли я заселить подмодуль Git?
Однажды я бегу
git update submodule
Могу ли я сделать что-нибудь, чтобы вернуться к тому, что было до инициализации и обновления?
3 ответа
Вы говорите, что хотите вернуться до init и update, что может быть в случае, когда субмодуль все еще присутствует в .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 г.):
git submodule deinit
(См. " Как удалить субмодуль Git?")
Это удаляет весь
submodule.<name>
раздел из.git/config
либо для данного подмодуля (ов)
Возможно, вам придется удалить рабочее дерево для этого подмодуля.
Если ваши изменения были зафиксированы, то вы сможете проверить reflog:
git reflog
Как только вы найдете потерянный набор изменений, вы можете объединить его обратно.
Если ваши изменения не были зафиксированы, их невозможно восстановить.