Могу ли я заселить подмодуль 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

Как только вы найдете потерянный набор изменений, вы можете объединить его обратно.

Если ваши изменения не были зафиксированы, их невозможно восстановить.

Другие вопросы по тегам