Git: требуется рекурсивно 'git rm' содержимое всех файлов bin и obj

Кто-то случайно просто отправил все свои папки bin и obj в наш репо (существует около 40 таких папок). Я хотел бы сделать git rm -r на всех этих папках. Есть ли команда для этого?

Ответы

Ответ 1

У вас есть резервные копии,

 find . -type d -name bin -exec git rm -r {} \;

 find . -type d -name obj -exec git rm -r {} \;

Update

С помощью bash вы можете установить globstar shopt и быть счастливым:

 shopt -s globstar
 git rm -r **/{obj,bin}/

Наконец, если вам нужно удалить их из истории репозитория, просмотрите git filter-branch и прочитайте раздел "Удаление объектов" из Pro Git Книга

Ответ 2

Как только вы вернетесь (сохраните файлы в истории) или reset commit,

git reset --hard

Как только эти файлы игнорируются,

git clean -xdf

Я использую это для очистки перед перестройкой решения. Кажется, vs использует некоторые dll даже после проверки другой ветки или слияния.

Вам не нужно прибегать к ветки фильтра. Интерактивная перестановка будет выполнена. Помните флаг -preserve-merges.

Надеюсь, что это поможет.

Ответ 3

Другой вариант - отменить оскорбительную фиксацию с помощью git revert.