GIT: перестать отслеживать файл или папку

Иногда в процессе разработки возникает ситуация, когда файл или целая директория уже добавлены в репозиторий, но их больше не нужно отслеживать. Например:

  • вы по ошибке закоммитили файлы логов или временные данные;
  • в проекте появилась папка с кэшем;
  • какие-то данные должны оставаться только локально (например, настройки IDE).

В таких случаях важно убрать файл/папку из индекса GIT, но при этом оставить их на диске.

Убрать папку из отслеживания

Разбор команды:

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

После этого папка my-folder останется на диске, но её содержимое больше не будет отслеживаться GIT.

Убрать все файлы внутри папки, но не саму папку

Иногда нужно оставить сам каталог в репозитории (например, uploads/ или storage/), но очистить его содержимое.

-- (две черты) — это специальный разделитель аргументов.

  • Он нужен, чтобы GIT понимал, что всё, что идёт после него, — это именно имена файлов/папок, а не опции команды.
  • Например, если у вас есть файл с именем --test.txt, без этого разделителя GIT подумает, что это флаг.
  • В нашем случае -- избыточен, но это рекомендованный приём безопасности, чтобы команды работали одинаково при любом имени пути.

Теперь папка будет пустой в репозитории, но сама директория сохранится.

Убрать отдельный файл из индекса

Точно также как и с папкой, только без флага -r (рекурсии).

Добавить в .gitignore

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

Итоговый порядок действий

  1. Удаляем ненужный файл/папку из индекса (git rm --cached).
  2. Делаем коммит с изменением.
  3. Добавляем путь в .gitignore, чтобы GIT больше не пытался отслеживать эти файлы.

Мало букафф? Читайте есчо !

Организуем автодеплой изменений из репозитория для проекта на Drupal

Август 23, 2018 г.

Когда над проектом работает несколько разработчиков, то возникают определенные структурные и организационные вопросы. Каждый программист обычно работает ...

Читать

Тонкости настройки в .gitignore

Июль 17, 2017 г.

Настройки в файле .gitignore позволяют исключить из списка файлов сканируемых GIT, все то что отслеживать не надо. Обычно это так называемые юзер-файлы, изображения, архивы, документация и т.п. В данной статье рассмотрим типовой случай настоек в .gitignore. ...

Читать

Установка Wordpress через composer

Апрель 3, 2023 г.

WP так то и сам хорошо управляется с модулями и темами. Вы можете установить модули/темы через админку. Единственный не удобный момент - это первоначальное ...

Читать

Получить в git список измененных файлов

Июль 26, 2017 г.

Небольшая шпаргалка по git. Файлы измененные с момента последнего коммита, т.е. текущие изменения, можно вывести командой [crayon-6a20fc9013375153499214/] Вы увидите два списка изменений - файлы, которые добавлены в commit и список unstaged changes ...

Читать
 

Комментарии к «GIT: перестать отслеживать файл или папку»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: