Как то случилась у меня проблема забыл сразу создать gitignore файл и добавил проект в репозиторий. Получилось куча не нужной инфы в нем (как то бинарные файлы python, библиотеки и т.п.)
Добавление всего этого в gitignore проблему не решило так как проект был уже закомичен в удаленный репозиторий, где все эти файлы уже были. Возник вопрос как же исключить их из трекинга гита.
Для одного файла подойдет команда:
1 |
git update-index --assume-unchanged <file> |
Которая проста исключит конкретный файл из мониторинга гитом.
Однако если файлов много то проблему так не решить.
Рецепт для множества файлов
Если вы хотите удалить с трекинга множество файлов или изменили свой gitignore
Source link: http://www.codeblocq.com/2016/01/Untrack-files-already-added-to-git-repository-based-on-gitignore/
Если вы добавили и закомитили некоторое количеств файлов а потом внесли их в gitignore, то эти файлы все равно будут присутствовать в индексе репозитория (более того, изменения в них будут отслеживатся и дальше).
Шаг 1: Commit всех ваших изменений
Перед началом убедитесь что все ваши изменения будут сохранены включая и ваш файл .gitignore.
Шаг 2: Удаляем все из репозитория
Для этого используем команду:
1 2 |
git rm -r --cached . |
- rm команда удаления
- -r разрешает рекурсивный обход каталогов
- –cached удаляет только закешированну информацию, сами файл останутся на диске.
Внимание команда rm
не может быть отменена. Возможно Вам следует сначала проверить ее действие добавив опции -n
или --dry-run
что бы увидить описание того, к каким файлам будет применено удаление.
Шаг 3: Заново добавляем все файлы
1 2 |
git add . |
Шаг 4: сохранение изменений
1 2 |
git commit -m ".gitignore fix" |
Все Ваш репозиторий уже чист
Далее отправка изменений в удаленный репозиторий.