2012-03-07 3 views
1

Я узнал, что не было хорошей идеей продолжать отслеживать двоичные файлы. Размер нашего репозитория растет гораздо быстрее, чем хотелось бы. Можно ли очистить этот файл от git?Как удалить двоичный файл из истории?

Никто даже не должен знать, что он существует.

+0

@svick Вы правы. Есть ли что-то, что я могу сделать? Удалить сообщение? – flumpb

+0

Это зависит от вас. Вы можете удалить этот вопрос, если считаете, что это никому не поможет. Или вы можете позволить другим закрыть его. – svick

+0

Дубликат [Полностью удалить файл из всей истории фиксации репозитория Git] (http://stackoverflow.com/questions/307828/completely-remove-file-from-all-git-repository-commit-history) и [Как удалить/удалить большой файл из истории фиксации в репозитории Git?] (http://stackoverflow.com/questions/2100907/how-do-i-purge-a-huge-file-from-commits-in-git-history) , –

ответ

3

Ознакомьтесь с этими точными вопросами и их ответами, в которых объясняется, как использовать ветвь git filter, чтобы делать то, что вы хотите сделать: Drop old commit: `git rebase` causes merge conflicts и Update a development team with rewritten Git repo history, removing big files.

Для хранения новых больших файлов в будущем, я бы рекомендовал использовать git-annex

+0

Спасибо, что указали это мне и отметили git-приложение. Я попробую это – flumpb

1

Чтобы переписать репозиторий, вы должны использовать git filter-branch. Вам нужно будет синхронизировать его со всеми пользователями и иметь день остановки/перезагрузки.

0

Theres инструмент под названием BFG специально сшитые для этой задачи.

имеет то преимущество, что ссылки sha1 в сообщениях фиксации также будут обновлены!

При написании в scala его легко настроить и запустить как программу командной строки.

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