2017-02-02 14 views
0

У меня есть репозиторий для клиента, который составляет 287M. Это около 2 1/2 лет, и этот размер не является чем-то необычным для репозиций, над которыми я работал. Что такое IS необычным является то, что 181M является папкой .git.Учет чрезвычайно большого размера папки .git в репозитории

Существует не слишком большое количество ветвей и, если на то пошло, я всегда думал, что сама ветка не занимает столько места, это всего лишь указатель. Но, пожалуйста, исправьте меня, если это не так.

Мои вопросы относятся к навигации этого (и фиксации его курса):

  1. Как определить, какой файл (ы), несут ответственность за это?
  2. Файл db_dump.sql.gz, который глупо включен в репо. Как удалить этот файл и удалить его из git-истории целиком, как если бы он никогда не существовал? (Это 16M, но я думаю, что если автоматизированный процесс сбрасывал этот файл, регулярно, и эти изменения были совершены, что могло бы стать причиной большого размера).
  3. Каковы некоторые способы уменьшить размер репозитория git, если таковые имеются? Благодарю.

ответ

0

Вы можете запустить git repack, чтобы git повторно сжал его содержимое, но эта команда должна запускаться раз в то время как git в любом случае.

  1. Я знаю this post, что дает сценарий, чтобы иметь список мерзавец свои объекты и размер, а затем попытаться дать им человеческое имя
  2. Это требует переписывания истории, так что будьте осторожны и предупредить других разработчиков, если ваш repo является общим: команда, которую вы ищете, - git filter-branch (с опцией --index-filter)
  3. Вы можете использовать git gc или git repack. Другой способ заключается в использовании новой копии вашего репо:

    git clone mydir newdir 
    # see how much disk the new '.git/' dir takes