Можно ли убрать git log в .git, когда он становится большим - PullRequest
12 голосов
/ 23 января 2012

Мне действительно не нравится иметь папку .git monster (2 ГБ), и меня не волнуют изменения в 2002 году, и я не хочу создавать новый репозиторий, так что я должен сделать для очистки .git / log?

Обратите внимание, что я хочу, чтобы это было не только локально, в следующий раз я хочу клонировать репозиторий без истории или с историей с 2011 года.

спасибо

Ответы [ 3 ]

7 голосов
/ 23 января 2012

От вашего вопроса, я думаю, вы хотите что-то вроде это .

git-rebase (1) делает именно это.

$ git rebase -i HEAD~5

git awsome-ness содержит пример.

  1. Не использовать git-rebase для публичных (удаленных) коммитов.
  2. Убедитесь, что ваш рабочий каталог чист (commit или stash ваши текущие изменения).
  3. Запустите приведенную выше команду. Он запускает ваш $EDITOR.
  4. Заменить pick до C и D на squash. Он объединит C и D в B. Если вы хотите удалить коммит, просто удалите его строку.

Если вы потерялись, введите:

$ git rebase --abort  

Однако для безопасного сжатия папки .git вышесказанное не рекомендуется. Вы можете попробовать следующее, как упомянуто в комментарии Линуса.

git repack -a -d --depth=250 --window=250

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

3 голосов
/ 23 января 2012

Запустите git gc --help , чтобы получить документацию.
В вашем случае git gc --aggressive --prune будет хорошо.

1 голос
/ 23 января 2012

Может быть, вы можете попробовать:

$ git gc --auto

На странице руководства написано:

Запуск ряда служебных задач в текущем репозитории, таких как сжатие ревизий файлов (для уменьшенияместа на диске и увеличения производительности) и удаления недоступных объектов, которые могли быть созданы из предыдущих вызовов git add.

Пользователям рекомендуется регулярно выполнять эту задачу в каждом хранилище, чтобы поддерживать хорошее использование дискового пространства иэксплуатационные характеристики.

Это всего лишь предложение, мне никогда не нужно использовать gc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...