Как удалить субмодуль? - PullRequest
3250 голосов
/ 11 августа 2009

Как мне удалить подмодуль Git?

Кстати, есть ли причина, по которой я не могу просто git submodule rm whatever?

Ответы [ 24 ]

4 голосов
/ 01 июня 2016

Если вы только что добавили подмодуль и, например, вы просто добавили неправильный подмодуль или добавили его в неправильное место, просто выполните git stash, затем удалите папку. Это предполагает, что добавление субмодуля - единственное, что вы сделали в недавнем репо.

2 голосов
/ 12 апреля 2019

С git 2.17 и выше это просто:

git submodule deinit -f {module_name}
git add {module_name}
git commit
1 голос
/ 22 мая 2019

Я создал скрипт bash, чтобы упростить процесс удаления. Он также проверяет, есть ли изменения в репо, оставленные несохраненными, и запрашивает подтверждение. Он был протестирован на os x. Было бы интересно узнать, работает ли он так же, как и на обычных дистрибутивах Linux:

https://gist.github.com/fabifrank/cdc7e67fd194333760b060835ac0172f

0 голосов
/ 01 марта 2019

В последнем git требуется всего 4 операции для удаления подмодуля git.

  • Удалить соответствующую запись в .gitmodules
  • Смена сцены git add .gitmodules
  • Удалить каталог подмодулей git rm --cached <path_to_submodule>
  • Зафиксировать это git commit -m "Removed submodule xxx"
...