Другой вариант - отменить оскорбительный коммит

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

Ответы на вопрос(3)

git revert.

Решение Вопроса

Иметь резервные копии,

 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

 Daniel Böhmer03 мая 2011 г., 16:19
+1 за показ 2-звездочкиglobstar что было новым для меня!
 7stud29 дек. 2015 г., 14:32
Вау! Через 4 года вы все равно можете мгновенно отвечать на вопросы!
 Adam Dymitruk03 мая 2011 г., 17:51
Не правда. Если в него включены другие файлы, содержащие правильные изменения, отметьте фиксацию для редактирования. Разархивируйте файлы папки obj / bin и перебазируйте --continue. Задача решена. Я не могу поверить, что этот ответ получил галочку. Такой сбой для того, чтобы не использовать Git и прибегнуть к «поиску».
 sehe03 мая 2011 г., 16:16
Добавлена ​​ссылка на фильтр-ветку и книгу про git, опция bash globstar
 Adam Dymitruk03 мая 2011 г., 16:22
-1 за то, что не использовал git clean. Это было предназначено для этих ситуаций.

т,

git reset --hard

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

git clean -xdf

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

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

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

 sehe03 мая 2011 г., 16:23
Что приведет к раздутой истории? Я не уверен, что вы имеете в виду
 sehe03 мая 2011 г., 16:18
Как часто упоминается,git reset --hard опасный совет
 Adam Dymitruk03 мая 2011 г., 16:25
Оставляя большие файлы, такие как dll и exes в истории, используя возврат вместо сброса.
 sehe03 мая 2011 г., 16:30
И это было то, что я сказал? Я никогда не упоминал Git Revert
 Adam Dymitruk03 мая 2011 г., 16:20
Так раздутая история. Это предполагает, что пользователь знает, что он делает, конечно.

Ваш ответ на вопрос