Git: необходимо рекурсивно 'git rm' содержимое всех папок bin и obj
Кто-то случайно отправил в репозиторий все свои папки bin и obj (таких папок около 40). Я хотел бы сделать git rm -r
на всех этих папках. Есть команда, чтобы сделать это?
3 ответа
Иметь резервные копии,
find . -type d -name bin -exec git rm -r {} \;
find . -type d -name obj -exec git rm -r {} \;
Обновить
С помощью bash вы можете установить купленную globstar и быть счастливым:
shopt -s globstar
git rm -r **/{obj,bin}/
Наконец, если вам нужно удалить их из истории хранилища, посмотрите на git filter-branch
и прочитайте раздел "Удаление объектов" из Pro Git Book
Как только вы вернетесь (сохраните файлы в истории) или сбросите коммит,
git reset --hard
Как только эти файлы игнорируются,
git clean -xdf
Я использую это, чтобы очистить перед перестройкой решения. Кажется, vs использует некоторые DLL даже после извлечения из другой ветви или слияния.
Вам не нужно прибегать к фильтрации ветки. Интерактивный ребаз сделает. Помните флаг --preserve-merges.
Надеюсь это поможет.