Недавно я заметил, что файлы проектов, которыми пользуются мои текстовые редакторы (вместе с некоторыми другими нежелательными файлами), добавили репозиторий git для проекта. Поскольку они на самом деле не являются частью проекта, я бы хотел их удалить, но git rm
не удаляет старые версии из репозитория, и я не мог найти ничего другого, что выглядит многообещающим.Как полностью удалить файл из репозитория git?
ответ
Инструмент, который вы хотите, - git filter-branch
. Его использование описано here, но в основном:
$ git filter-branch --tree-filter 'rm -f my_file' HEAD
удалит "my_file" из каждый фиксации.
Обратите внимание на то, что это переписывает каждую фиксацию, поэтому, если вы входите в удаленный репозиторий, вам необходимо (a) принудительно обновить, и (б) все остальные, кто вытащил вас, теперь будут иметь дубликаты (поскольку вы переписали история), как описано в git rebase
man page.
Я рекомендую добавить '--prune-empty', поэтому любые пустые коммиты, созданные в результате, будут удалены слишком. – fnkr
Как это работает в репозитории со многими файлами с тем же именем в разных каталогах? Удаляет ли все файлы с тем же именем? – CodeMonkey
@CodeMonkey: В этом случае вы должны использовать более длинный уникальный путь. – mipadi
Для этого необходимо git filter-branch
, но будьте уверены, что ваша история репо изменится, и хеши фиксации будут отличаться после перезаписи истории.
Если вы также хотите освободить место, я рекомендую вам использовать git forget-blob
, потому что только git filter-branch
не заставит git забыть ваш файл, так как он все еще может ссылаться на пульты, рефлог, теги и т. Д.
git forget-blob main.c.swp
Вы можете получить более подробную информацию here
- 1. Удалить файл из репозитория git
- 2. Как удалить git из репозитория
- 3. Git Удалить Большой файл из репозитория git
- 4. Как удалить проигнорированный файл из репозитория git
- 5. Как удалить большой файл из репозитория Git?
- 6. Как я могу полностью удалить данные из репозитория git?
- 7. Как полностью удалить ветвь GIT?
- 8. git удалить файл из репозитория upstream (github)
- 9. git - невозможно удалить файл из репозитория
- 10. Удалить файл из репозитория под git
- 11. Удалить файл из Git
- 12. Удалить файл из репозитория
- 13. Полностью удалить файл из целого git-хранилища
- 14. Как полностью удалить каталог из репозитория SVN
- 15. Как удалить неиспользуемые объекты из репозитория git?
- 16. Как удалить файл из репозитория на github.com?
- 17. Можно полностью удалить файл из моего SVN-репозитория?
- 18. Удалить файл из git
- 19. Как удалить противоречивую ссылку из репозитория git?
- 20. Как удалить повторяющуюся историю из репозитория git?
- 21. Как удалить уровень каталогов из репозитория GIT?
- 22. Удалить файл из репозитория мерзавца (история)
- 23. Как полностью удалить git из проекта?
- 24. Git: удалить учетные данные из репозитория
- 25. Как удалить .git-файл из svn?
- 26. Удалить предположительно неотслеживаемый файл из удаленного репозитория
- 27. Удалить файл полностью
- 28. Как удалить undefined файл расширения из git?
- 29. Git: удалить информацию о пользователе из репозитория
- 30. Быстро удалить все файлы из репозитория git
частичного дублирования, безусловно, охватывает предыдущие вопросы: http://stackoverflow.com/questions/307828/git-remove-file-accidentally-added-to -the-repository http://stackoverflow.com/questions/1216733/remove-a-directory-permanently-from-git – Cascabel