Вот как очистить Git и удалить неотслеживаемые файлы
Неотслеживаемые файлы могут загромождать ваше рабочее дерево Git и мешать работе в будущем. Иногда эти неотслеживаемые файлы могут быть текстовыми или другими файлами, которые вам не нужны в вашем удаленном репозитории, или теми, которые вы ошибочно создали так или иначе после постановки фиксации.
В любом случае, всегда полезно очистить рабочее дерево Git, чтобы удалить эти файлы.
Что такое неотслеживаемые файлы во время фиксации Git?
Если вы обновили некоторые существующие файлы в своем проекте, а также добавили новые файлы локально и хотите отправить это обновление в удаленный репозиторий на GitHub, Git требует, чтобы вы подготовили эти изменения для фиксации.
Простое обновление уже существующих файлов, которые вы уже зафиксировали, не удаляет их из отслеживаемых файлов.
Когда вы готовите обновление для фиксации, новые файлы также помещаются вместе с ними, и Git добавляет их в отслеживаемые файлы. Однако новые файлы, которые вы добавляете в свой проект после постановки фиксации, не отслеживаются.
Это могут быть неважные или оставшиеся файлы, которые вы временно использовали, или те, которые так или иначе появляются после слияния или внесения некоторых изменений. Следовательно, эти неотслеживаемые файлы все еще скрываются в вашем рабочем дереве, и когда вы запускаете git status , Git возвращает их как неотслеживаемые файлы.
Вы можете удалить эти файлы, очистив рабочее дерево Git. В противном случае, если вы все еще думаете, что вам нужны некоторые из них локально, вы можете добавить их в файл .gitignore . Файлы, которые вы добавляете в .gitignore , не будут затронуты очисткой, даже если вы решите их включить.
Очистить Git так же просто, как удалить ветку Git локально или удаленно . Давайте посмотрим, как можно очистить Git для удаления неотслеживаемых файлов или папок ниже.
Как очистить Git и удалить неотслеживаемые файлы или папки
Перед удалением неотслеживаемых файлов вы должны дважды проверить, хотите ли вы их удалить. Для этого запустите приведенный ниже код:
git clean -d -n
Команда возвращает все неотслеживаемые папки и файлы, которые Git удалит из вашего рабочего дерева.
Чтобы удалить эти файлы и каталоги, запустите:
git clean -d -f
Чтобы удалить только файлы без удаления папок, используйте:
git clean -f
Хотя вышеуказанные методы не удаляют файлы, перечисленные в .gitignore , вы также можете использовать приведенную ниже команду для очистки элементов, перечисленных в файле .gitignore :
git clean -fx
Чтобы удалить только игнорируемые файлы без включения других файлов, на этот раз измените строчную букву «x» на прописную «X»:
git clean -fX
Чтобы проверить, есть ли все еще неустановленные файлы в вашем рабочем дереве, выполните следующую команду:
git status
Вы также можете очистить Git в интерактивном режиме, используя:
git clean -i
Чтобы включить файлы в .gitignore в интерактивном режиме очистки, используйте:
git clean -ix
Чтобы очистить файлы, перечисленные в .gitignore, только в интерактивном режиме, выполните следующую команду. Убедитесь, что на этот раз вы используете заглавную букву «X»:
git clean -ifX
Когда появится интерактивный режим, вы можете выбрать фильтрацию файлов по номеру или строковому шаблону. Вы также можете выбрать опцию спрашивать, если нужно дважды проверять каждый файл перед его удалением. Если хотите, вы можете выбрать опцию очистки, чтобы сразу удалить файлы.
Запуск git status дает вам текущую промежуточную информацию, и если есть какие-либо неустановленные файлы или папки, он также дает вам знать.
По-прежнему видите, что удаленные файлы не отслеживаются после запуска Git Clean?
Однако после проверки статуса Git, если файлы, которые вы ранее удалили, все еще появляются в разделе неотслеживаемых файлов, вам следует очистить кеш Git. Затем снова запустите git clean, чтобы удалить файлы.
Чтобы очистить кеш Git:
git rm -r --cached [filename]
Если после очистки Git у вас все еще появляется несколько файлов, используйте следующую команду, чтобы очистить кеш Git для каждого файла:
git rm -r --cached [filename1] [filename2] [filename3]...
Однако убедитесь, что вы добавили расширение файла для каждого из файлов, и не забудьте снова очистить Git, чтобы удалить их.
Почему вам нужно очищать Git, чтобы удалить неотслеживаемые файлы?
Иногда вам нужно навести порядок в рабочем дереве Git, прежде чем оставлять проект на другой раз. Затем вы, вероятно, отправите или объедините последние изменения, которые вы внесли в проект, чтобы в следующий раз вы могли продолжить именно с того места, где остановились.
Но во время нажатия или слияния некоторые файлы, которые вы не хотите в своем репозитории, могут попасть по ошибке.
Неспособность проверить такие файлы и удалить их может испортить ваш удаленный репозиторий, так как они будут вытолкнуты в следующий раз, когда вы будете обновлять удаленный репозиторий. Кроме того, такие файлы могут нарушить работу при развертывании на таких платформах, как Heroku, где для развертывания используется git.
Итак: держите свой Git в чистоте!