Исключение файлов/папок, уже добавленных в репозиторий Git с помощью .gitignore
Предположим, что вы уже добавили (закоммитили и отправили) файлы в репозиторий Git (локально и удалённо). После этого вы добавили их в файл .gitignore
. Несмотря на это, эти файлы (папки) все равно останутся в индексе вашего репозитория и будут продолжать отслеживаться — потому что они уже находятся в индексе, и в этом случае .gitignore
будет проигнорирован. Давайте рассмотрим, как удалить такие файлы.
Как полностью очистить репозиторий Git (очистить индекс)
Шаг 1: Закоммитьте все изменения
Перед тем, как продолжить, убедитесь, что все изменения закоммичены, включая файлы из .gitignore
.
Шаг 2: Удалите всё из репозитория
Чтобы очистить репозиторий, используйте следующую команду:
git rm -r --cached .
- rm — означает "удалить".
- -r — позволяет производить удаление рекурсивно (удаляет также содержимое папок).
- --cached — удалит файлы только из индекса, не затрагивая их физически.
- . — указывает, что будут удалены все файлы.
Команда rm
действует безжалостно. Поэтому вы можете сделать "пробный" запуск. Для этого добавьте флаг -n или --dry-run, чтобы увидеть, что сделает команда.
Шаг 3: Добавьте всё снова
После очистки индекса используйте команду:
git add .
Шаг 4: Закоммитьте изменения
Теперь закоммитьте изменения с сообщением.
git commit -m ".gitignore перезапущен"
Вот и всё. Ваш репозиторий теперь чист. 😊
Не забудьте отправить изменения на удалённый сервер, чтобы удалить все ненужные файлы и там.
Как удалить конкретный файл из списка отслеживаемых в Git
Иногда необходимо удалить файл или несколько файлов из списка отслеживаемых в репозитории Git. Например, если файл случайно попал в этот список, а вы добавили его в .gitignore
, и теперь нужно удалить его из Git, но без физического удаления самого файла. Это можно сделать с помощью следующей команды:
git rm --cached www/composer.lock
Таким образом, вы сможете удалить файл из отслеживания, сохранив его в вашей файловой системе.