Исключить с помощью .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"
Все. Ваш репозиторий чист
Запушьте изменения на удаленный сервер, чтобы и там удалить все ненужное.
Как удалить отдельный файл из GIT
Иногда бывает нужно удалить файл или несколько файлов из трэк-листа ГИТ репозитория. Например, когда файл по-ошибке попал в трэк-лист, затем вы добавили его в .gitignore, а теперь его нужно удалить из git, но при этом не нужно удалять сам файл физически. Это можно сделать следующей командой:
git rm --cached www/composer.lock