Поиск больших файлов в истории git-репозитория не удался

Мой репозиторий очень большой из-за некоторых больших файлов в истории. Для поиска больших файлов и их удаления я выполняю:

$ git verify-pack -v .git/objects/pack/pack-..e8a.idx | sort -k 3 -n | tail -3 

и результат примерно такой:

12eb660ea206e1b7bd42cb8b525aabe9e86a5064 blob   56413247 15833578 5889838
89b377ace5639c0914bb49d28d0c8e97b0f19a16 blob   56414112 15833631 81736530
4ea83fb57b49f7afdbe99e4f043509d184338f5b blob   56426618 15837504 48628334

Чтобы найти путь к самому большому файлу, я запускаю:

$ git rev-list --objects --all | grep 4ea83fb57b49f

и результат:

4ea83fb57b49f7afdbe99e4f043509d184338f5b path/to/my/large_file

но когда я бегу git log на этот файл как:

$ git log --oneline --branches -- path/to/my/large_file

Журнал не отображается. Кроме того, всякий раз, когда я пытаюсь удалить двоичный файл из истории, выполните следующие действия:

$ git filter-branch --index-filter  \
'git rm --ignore-unmatch --cached path/to/my/large_file'

Я получил:

WARNING: Ref 'refs/heads/master' is unchanged

Есть идеи?

1 ответ

Решение

Возможно, пути к крупным объектам расположены в разных ветках. использование --all в filter-branch Команда для удаления больших файлов из всех веток.

Другие вопросы по тегам