2016-02-01 1 views
1

Я хочу очистить все капли и историю файлов, которые были ранее удалены (то есть больше не присутствуют в HEAD), в настоящее время я запускаю эти команды, но BFG кажется удалить все пятна, в том числе присутствующих в ГОЛОВЫ:Как очистить всю историю git и капли файлов, которые в настоящее время не присутствуют в HEAD с BFG

git log # Returns 1050 commits 
git commit -a -m "Clean the old history and blobs with BFG" 
java -jar bfg.jar --delete-files '*' # Delete all files not in HEAD 
git log # Still returns 1050 commits, all empty 
git diff 5458b2^ 5458b2 # Returns 0 change, while it concerns a protected file 

BFG фактически принял во внимание защищенные файлы в голове, как gitignore, например:

Protected commits 
----------------- 
These are your protected commits, and so their contents will NOT be altered: 
* commit 22a1ebd3 (protected by 'HEAD') - contains 1451 dirty files : 
    - .gitignore (813 B) 
    - ... 

но они будут удалены в любом случае , в то время как они должны быть защищены:

Deleted files 
------------- 
    Filename  Git id 
    ---------------------------------------- 
    .gitignore | 091217cf (672 B), 17e3d7c5 (227 B)...       

ответ

0

я, наконец, с помощью that script, чтобы очистить хранилище от устаревших удаленных файлов. Он объединяет несколько шагов перезаписи ветвей и вызова сборщика мусора для очистки текущего репозитория.

Мне удалось сжать 700-мегабайтное тяжелое репо в 4-мегабайтном репозитории. Как обычно, дублируйте свой репозиторий перед запуском такого скрипта, это может привести к некоторому утере данных!

-1

Возможно, вы сможете попробовать следующую команду, чтобы удалить все недостижимые объекты.

мерзавец чернослив

или

мерзавец дс

+0

Просто потому, что файл был удален, не означает, что это недостижимый объект. Задает перед удалением фиксацию по-прежнему указывает на объект (ы) для удаленного файла. – matt

Смежные вопросы