Я использую ответ this question, чтобы удалить клонирование репозитория в список файлов, которые я хочу сохранить в отключение этого проекта. Скажем, я хочу удалить все, кроме каталога src/main
и его подкаталогов. Поскольку у меня будет несколько файлов и каталогов, я использую --index-filter
вместо --subdirectory-filter
.git-filter-branch с -index-filter: странная ошибка bash (!: Событие не найдено)
Я думал, что должно работать:
git filter-branch --index-filter "git rm -r -f --cached --ignore-unmatch ↩
src/!(main)" --prune-empty -- --all
Но все это я получаю
-bash: !: event not found
Я перепробовал все виды различных путей вместо src/!(main)
. Я всегда получаю именно это сообщение об ошибке. Кажется, это проблема bash, потому что эта строка также не входит в мою историю командной строки?
То есть, если у меня есть главные файлы уровня A
и B
, и подкаталог C/D
, как я могу удалить все, кроме эти три вещи?
В то же время, у меня есть успех, давая 'г rm' список всех файлов __remove__, вместо того, чтобы указать те, в __keep__. В этом случае большая боль, потому что есть много по сравнению с теми, кого я хочу сохранить; но, похоже, это работает. –