О чем это?

Некоторые из нас плохо знакомы с GitHub и только что узнали, как работает .gitignore файл. По сути, он игнорирует файлы, перечисленные в нем, от загрузки в удаленный репозиторий. Если вы также хотите сначала узнать больше о GitHub, вы можете зайти здесь, а затем продолжить эту статью. 👍

Почему?

Многие из нас, должно быть, думают, почему это происходит. Несмотря на то, что файл указан в файле gitignore, он помещается в удаленный репозиторий. Успокойтесь, вам здесь точно чего-то не хватает. Давай узнаем… 🌐

Что происходит?

Так что давайте поработаем над этим сверху. Вы создали проект и размещаете код в удаленном репозитории. Но вы забыли добавить папку, предположим node_modules в этом случае. Итак, что вы делаете, это после предыдущего коммита вы добавляете запись node_modules в файл .gitignore.

Предположим, это ваш .gitignore файл:

Но после этого вы столкнетесь с той же проблемой. Папка node_modules все еще отправляется на удаленную сторону. 😕

Почему это происходит?

Вы, должно быть, удивитесь, но .gitignore отлично справляется со своей работой. Его функционирование говорит:

.gitignore предотвратит добавление неотслеживаемых файлов к набору файлов, отслеживаемых git, однако git продолжит отслеживать любые файлы, которые уже отслеживаются.

Это звонит в какие-нибудь колокола? 💡

Итак, простыми словами, .gitignore не влияет на файлы, которые уже проиндексированы. Поскольку папка node_modules уже была добавлена ​​в индекс git при первой фиксации, она больше не будет проходить через .gitignore. Он будет проверять только недавно созданные файлы, а не существующие, поэтому папка node_modules никогда не будет удалена, если вы ничего не сделаете с этим.

Теперь index, в некотором смысле, git index похож на кеш для вашего проекта. Это промежуточный уровень между вашими локальными файлами проекта и коммитами в ваш репозиторий. Чтобы очистить этот кеш, нам нужно избавиться от него, чтобы проект можно было подготовить для следующего коммита.

Исправление

Удаление поэтапного проекта

Чтобы отследить файл, который вы не хотите, чтобы он отслеживался файлом из кеша. Мы не собираемся удалять сам файл, а просто удаляем его запись, которая была добавлена ​​в кеш. Для этого выполните команду:

git rm --cached <filename>

В этом случае: git rm --cached node_modules

Если у вас есть много файлов, которые необходимо отключить, вы можете просто отказаться от следующей опции:

git rm --cached .

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

Спасибо :)

Надеюсь, вам понравилась статья 🙌
Пожалуйста, дайте мне знать аплодисментами
Разместите свои предложения по новым статьям здесь 📬
Вы также можете купить мне кофе здесь ☕️

Больше контента на plainenglish.io