Git: рекурсивно изисква съдържанието на git rm от всички bin и obj файлове

Някой случайно просто изпрати всичките си папки за bin и obj в нашето репо (има около 40 такива папки). Бих искал да направя git rm -r във всички тези папки. Има ли екип за това?

14
03 мая '11 в 17:08 2011-05-03 17:08 Jacko е попитан 03 май '11 в 17:08 2011-05-03 17:08
@ 3 отговора

Имате резервни копия,

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

Актуализация

С bash можете да инсталирате globstar shopt и да бъдете щастливи:

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

И накрая, ако трябва да ги премахнете от историята на хранилището, разгледайте git filter-branch и прочетете раздела „Премахване на обекти“ от Pro Git Book

25
03 мая '11 в 17:10 2011-05-03 17:10 отговорът е даден sehe 03 май '11 в 17:10 2011-05-03 17:10

Веднага щом се върнете (запишете файловете в историята) или възстановите ангажимента,

 git reset --hard 

Веднага след като тези файлове бъдат игнорирани,

 git clean -xdf 
border=0

Използвам това за почистване, преди да възстановя решението. Изглежда, че срещу някои DLL използва дори след проверка на друг клон или сливане.

Не е необходимо да прибягвате до клоните на филтъра. Ще бъде извършена интерактивна пермутация. Запомни флаг -preserve-merges.

Надявам се това да помогне.

5
03 мая '11 в 17:14 2011-05-03 17:14 отговорът е даден от Адам Dymitruk на 03 май '11 в 17:14 2011-05-03 17:14

Друга възможност е да се отмени злоупотребата, като се използва git revert .

-3
03 мая '11 в 17:14 2011-05-03 17:14 Отговор е даден от Mike Mazur на 03 май '11 в 17:14 2011-05-03 17:14

Други въпроси относно tags или Ask a Question