Іноді додавання файлу до .gitignore
може не спрацювати, і файл продовжуватиме відображатися при виконанні команди git status
. Це відбувається через те, що Git ігнорує лише ті файли, які були додані до репозиторію після додавання позначки про них у файлі .gitignore
. Якщо файл вже був доданий в історію коммітів до того, як про нього згадали в .gitignore
, то він продовжуватиме відстежуватися Git'ом.
Вирішення проблеми
Для вирішення цієї проблеми існує команда git rm --cached
яка видаляє файл з індексу Git, але залишає його в робочому каталозі. Це дозволяє Git почати ігнорувати файл, не видаляючи його з файлової системи.
Насамперед необхідно внести ім'я файлу або шаблон в .gitignore
, щоб вказати Git'у, що він має ігнорувати цей файл. Далі виконуємо команду:
git rm --cached <file-name>
Докладніше про команду та доступні опції можна почитати на цій сторінці документації.
Після цього зафіксуйте зміни. Якщо необхідно, зафіксуйте зміни за допомогою комміту, щоб оновлення .gitignore та видалення файлу з індексу стали постійними частинами репозиторію.
Якщо потрібно зупинити відстеження всіх файлів, розміщених у конкретній папці, потрібно виконати команду:
git rm -r --cached <folder>
Відстеження файлів припиниться вже наступного коміту. Важливо пам'ятати, що ці файли будуть видалені з локальних репозиторіїв інших розробників під час наступного виконання команди git pull.