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
.