Могу ли я заселить подмодуль Git? - PullRequest
8 голосов
/ 22 марта 2011

После запуска

git update submodule

могу ли я сделать что-нибудь, чтобы вернуться к тому, что было до инициализации и обновления?

Ответы [ 3 ]

7 голосов
/ 22 марта 2011

Вы говорите, что хотите вернуться до 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
1 голос
/ 23 апреля 2013

Попробуйте (с git1.8.3, 22 апреля 2013 г.) a:

git submodule deinit

(см. " Как удалить подмодуль Git? ")

Это удаляет весь раздел submodule.<name> из .git/config для данного подмодуля (ов).

Возможно, вам придется удалить рабочее дерево для этого подмодуля.

0 голосов
/ 22 марта 2011

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

git reflog

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

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

...