Исключить с помощью .gitignore файлы/папки уже добавленые в GIT репозиторий

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

Как полностью очистить GIT репозиторий (очистить индекс)

Шаг 1: Зафиксируйте все изменения

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

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

Чтобы очистить репозиторий, используйте:

git rm -r --cached .
  • rm — означает удалить (remove).
  • -r — позволит рекурсивное удаление.
  • --cached — будет удалять только файлы из индекса, не физические.
  • . — указывает, что будут удалены все файлы.

Команда rm беспощадная. Поэтому можно сделать «фейковый» запрос, для этого добавьте флаг -n или --dry-run, чтобы посмотреть что будет сделано командой.

Шаг 3: Добавить все заново

git add .

Шаг 4: Фиксация

git commit -m "реактивировано действие файла .gitignore"

Все. Ваш репозиторий чист smile

Запушьте изменения на удаленный сервер, чтобы и там удалить все ненужное.

Как удалить отдельный файл из трэк-листа GIT

Иногда бывает нужно удалить файл или несколько файлов из трэк-листа ГИТ репозитория. Например, когда файл по-ошибке попал в трэк-лист, затем вы добавили его в .gitignore, а теперь его нужно удалить из git, но при этом не нужно удалять сам файл физически. Это можно сделать следующей командой:

git rm --cached www/composer.lock