Android

Игнорирование файлов и каталогов в git (.gitignore)

git rm command tutorial in details || git interview question || github

git rm command tutorial in details || git interview question || github

Оглавление:

Anonim

Часто при работе над проектом, использующим Git, вы хотите исключить передачу определенных файлов или каталогов в удаленный репозиторий.

Файл .gitignore указывает, какие неотслеживаемые файлы Git должен игнорировать.

Какие файлы следует игнорировать?

Игнорируемые файлы - это, как правило, специфичные для платформы файлы или автоматически созданные файлы из систем сборки. Некоторые общие примеры включают в себя:

  • Файлы времени выполнения, такие как журнал, блокировка, кэш или временные файлы. Файлы с конфиденциальной информацией, такой как пароли или ключи API. Скомпилированный код, такой как каталоги .class или .o .Dependency, например каталоги /vendor или /node_modules Каталоги сборки, такие как /public , /out или /dist Системные файлы, такие как .DS_Store или Thumbs.db IDE или файлы конфигурации текстового редактора.

.gitignore

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

Шаблоны, определенные в файлах, которые находятся в каталогах (подкаталогах) более низкого уровня, имеют приоритет над шаблонами в каталогах более высокого уровня.

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

Правила личного игнорирования

Шаблоны, характерные для вашего локального репозитория и не подлежащие распространению в других репозиториях, должны быть установлены в файле .git/info/exclude .

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

Глобальный .gitignore

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

Файл может быть назван как угодно и храниться в любом месте. Наиболее распространенным местом для хранения этого файла является домашний каталог. Вам придется вручную создать файл и настроить Git для его использования.

Например, чтобы установить ~/.gitignore_global в качестве глобального файла игнорирования Git, вы должны сделать следующее:

  1. Создайте файл:

    touch ~/.gitignore_global

    Добавьте файл в конфигурацию Git:

    git config --global core.excludesfile ~/.gitignore_global

    Откройте файл в текстовом редакторе и добавьте в него свои правила.

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

Игнорирование ранее зафиксированных файлов

Файлы в вашей рабочей копии могут быть отслежены или не отслежены.

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

git rm --cached filename

Опция --cached говорит git не удалять файл из рабочего дерева, а только удалять его из индекса.

Чтобы рекурсивно удалить каталог, используйте параметр -r :

git rm --cached filename

При рекурсивном удалении файлов используйте параметр -n , который выполнит «пробный запуск» и покажет, какие файлы будут удалены:

git rm -r -n directory

Отладка .gitignore файла

Иногда бывает сложно определить, почему конкретный файл игнорируется, особенно когда вы используете несколько файлов .gitignore или сложные шаблоны. Именно здесь пригодится команда git check-ignore с опцией -v , которая указывает git отображать подробности о соответствующем шаблоне.

Например, чтобы проверить, почему файл www/yarn.lock игнорируется, вы должны выполнить:

git check-ignore -v www/yarn.lock

Выходные данные показывают путь к файлу gitignore , номер совпадающей строки и фактический шаблон.

www/.gitignore:31:/yarn.lock www/yarn.lock

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

Отображение всех игнорируемых файлов

Команда git status с параметром --ignored отображает список всех игнорируемых файлов:

git status --ignored

Вывод

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

gitignore.io - это онлайн-сервис, который позволяет создавать файлы .gitignore для вашей операционной системы, языка программирования или IDE.