Изменение в gitinore и исключение файлов из мониторинга git

Как то случилась у меня проблема забыл сразу создать gitignore файл и добавил проект в репозиторий. Получилось куча не нужной инфы в нем (как то бинарные файлы python, библиотеки и т.п.)

Добавление всего этого в gitignore  проблему не решило так как проект был уже закомичен в удаленный репозиторий, где все эти файлы уже были. Возник вопрос как же исключить их из трекинга гита.

Для одного файла подойдет команда:

Которая проста исключит конкретный файл из мониторинга гитом.

Однако если файлов много то проблему так не решить.

Рецепт для множества файлов

Если вы хотите удалить с трекинга множество файлов или изменили свой gitignore 

Source link: http://www.codeblocq.com/2016/01/Untrack-files-already-added-to-git-repository-based-on-gitignore/

Если вы добавили и закомитили некоторое количеств файлов а потом внесли их в gitignore, то эти файлы все равно будут присутствовать в индексе репозитория (более того, изменения в них будут отслеживатся и дальше). 


Шаг 1: Commit всех ваших изменений

Перед началом убедитесь что все ваши изменения будут сохранены включая и ваш файл .gitignore.

Шаг 2: Удаляем все из репозитория

Для этого используем команду:

  • rm команда удаления
  • -r разрешает рекурсивный обход каталогов
  • –cached удаляет только закешированну информацию, сами файл останутся на диске.

Внимание команда rm не может быть отменена. Возможно Вам следует сначала проверить ее действие добавив опции -n или --dry-run что бы увидить описание того, к каким файлам будет применено удаление.

Шаг 3: Заново добавляем все файлы
Шаг 4: сохранение изменений

Все Ваш репозиторий уже чист

Далее отправка изменений в удаленный репозиторий.

Обсуждение закрыто.