git filter-branch - удалить один из многих подмодулей - PullRequest
0 голосов
/ 30 апреля 2018

Я много использовал git filter-branch, чтобы избавиться от устаревших файлов, однако для чистого git-репо я не могу понять, как переписать свою историю git, когда один из моих подмодулей git удален.

У меня репо верхнего уровня "Дональд", а ниже "Дональд" у меня есть четыре подмодуля "Хьюи", "Дьюи", "Луи" и "Фуи" [1]. "Phooey" никогда не должен был быть добавлен - и, к сожалению, время прошло там, где оно было.

Лучшая ссылка, которую я нашел, это git filter-branch удалить все подмодули из моего репо , но это слишком много.

[1] http://www.sullivanet.com/duckburg/phooey.htm: -)

1 Ответ

0 голосов
/ 30 апреля 2018

Сначала резервное копирование. Deinit и удалить только один модуль:

git filter-branch -f --prune-empty --tree-filter '
    git submodule deinit -f -- path/to/module &&
    git rm -rf path/to/module || :
' HEAD &&
rm -rf .git/modules/path/to/module 
...