Git: необходимо рекурсивно 'git rm' содержимое всех папок bin и obj - PullRequest
14 голосов
/ 03 мая 2011

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

Ответы [ 3 ]

26 голосов
/ 03 мая 2011

Резервное копирование,

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

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

Обновление

С bash вы можете установить shobstar и быть счастливыми:

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

Наконец, если вам нужночтобы удалить их из истории хранилища, посмотрите на git filter-branch и прочитайте раздел «Удаление объектов» из Pro Git Book

5 голосов
/ 03 мая 2011

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

git reset --hard

После того, как эти файлы будут проигнорированы,

git clean -xdf

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

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

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

0 голосов
/ 03 мая 2011

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

...