Прежде всего, как уже говорили многие другие, ваш .gitignore
должен отслеживаться Git (и поэтому не должен игнорироваться). Позвольте мне объяснить, почему.
(TL; DR: зафиксировать файл .gitignore
и использовать global .gitignore
для игнорирования файлов, созданных вашей IDE или операционной системой)
Git, как вы, наверное, уже знаете, распределенная система управления версиями . Это означает, что он позволяет вам переключаться между различными версиями (даже если разработка разошлась по разным ветвям), а также позволяет нескольким разработчикам работать над одним проектом.
Хотя отслеживание вашего .gitignore
также имеет преимущества при переключении между снимками, наиболее важной причиной для его фиксации является то, что вы захотите поделиться файлом с другими разработчиками, работающими над тем же проектом. Зафиксировав файл в Git, другие участники автоматически получат файл .gitignore
при клонировании хранилища, поэтому им не придется беспокоиться о случайной фиксации файла, который не должен быть зафиксирован (например, файлы журналов, каталоги кеша) , учетные данные базы данных и т. д.). И если в какой-то момент проект .gitignore
будет обновлен, они могут просто внести эти изменения вместо того, чтобы редактировать файл вручную.
Конечно, будут некоторые файлы и папки, которые вы хотите игнорировать, но они специфичны для вас и не применимы к другим разработчикам. Однако их не должно быть в .gitignore
проекта. Есть два других места, где вы можете игнорировать файлы и папки:
- Файлы и папки, созданные вашей операционной системой или IDE, должны быть помещены в global
.gitignore
. Преимущество заключается в том, что .gitignore
применяется ко всем репозиториям на вашем компьютере, поэтому вам не нужно повторять это для каждого репозитория. И он не используется другими разработчиками, поскольку они могут использовать другую операционную систему и / или IDE.
- Файлы, которые не относятся ни к
.gitignore
проекта, ни к глобальному .gitignore
, могут быть проигнорированы с помощью явного репозитория , исключенного из your_project_directory/.git/info/exclude
. Этот файл не будет передан другим разработчикам и предназначен для этого единственного хранилища