Игнорирование в Git
Git рассматривает каждый файл в вашей рабочей копии как файл одного из трех нижеуказанных типов.
1. Отслеживаемый файл — файл, который был предварительно проиндексирован или зафиксирован в коммите.
2. Неотслеживаемый файл — файл, который не был проиндексирован или зафиксирован в коммите.
3. Игнорируемый файл — файл, явным образом помеченный для Git как файл, который необходимо игнорировать.
Игнорируемые файлы — это, как правило, артефакты сборки и файлы, генерируемые машиной из исходных файлов в вашем репозитории, либо файлы, которые по какой-либо иной причине не должны попадать в коммиты. Вот некоторые распространенные примеры таких файлов:
- кэши зависимостей, например содержимое /node_modules или /packages ;
- скомпилированный код, например файлы .o , .pyc и .class ;
- каталоги для выходных данных сборки, например /bin , /out или /target ;
- файлы, сгенерированные во время выполнения, например .log , .lock или .tmp ;
- скрытые системные файлы, например .DS_Store или Thumbs.db ;
- личные файлы конфигурации IDE, например .idea/workspace.xml .
Игнорируемые файлы отслеживаются в специальном файле .gitignore , который регистрируется в корневом каталоге репозитория. В Git нет специальной команды для указания игнорируемых файлов: вместо этого необходимо вручную отредактировать файл .gitignore , чтобы указать в нем новые файлы, которые должны быть проигнорированы. Файлы .gitignore содержат шаблоны, которые сопоставляются с именами файлов в репозитории для определения необходимости игнорировать эти файлы.
- Игнорирование файлов в Git
- Шаблоны игнорирования в Git
- Общие файлы .gitignore в вашем репозитории
- Персональные правила игнорирования в Git
- Глобальные правила игнорирования в Git
- Игнорирование ранее закоммиченного файла
- Коммит игнорируемого файла
- Скрытие изменений в игнорируем файле
- Отладка файлов .gitignore
Пропуск файлов
Вы можете настроить Git для игнорирования файлов, которые вы не хотите возвращать в GitHub.
Platform navigation
Настройка игнорируемых файлов для одного репозитория
Вы можете создать .gitignore файл в корневом каталоге репозитория, чтобы сообщить Git, какие файлы и каталоги игнорировать при фиксации. Чтобы предоставить общий доступ к правилам игнорировать другим пользователям, которые клонировали репозиторий, зафиксируйте .gitignore файл в репозитории.
GitHub поддерживает официальный список рекомендуемых .gitignore файлов для многих популярных операционных систем, сред и языков в общедоступный репозиторий github/gitignore. Вы также можете использовать gitignore.io для создания .gitignore файла для операционной системы, языка программирования или интегрированной среды разработки. Дополнительные сведения см. в разделе github/gitignore и на сайте gitignore.io.
- Откройте Терминал Терминал GIT Bash .
- Перейдите к расположению репозитория Git.
- .gitignore Создайте файл для репозитория.
touch .gitignoreПример .gitignore файла см. в разделе «Некоторые распространенные конфигурации gitignore» в репозитории Octocat.
Если вы хотите игнорировать файл, который уже был отправлен в репозиторий, необходимо отменить отслеживание файла перед тем, как добавлять правило для игнорирования файла. В терминале распакуйте файл.
git rm --cached FILENAMEНастройка игнорируемых файлов для всех репозиториев на компьютере
Вы можете сообщить Git всегда игнорировать определенные файлы или каталоги при создании фиксации в любом репозитории Git на компьютере. Например, эту функцию можно использовать для пропуска любых временных файлов резервного копирования, создаваемых текстовым редактором.
Чтобы всегда игнорировать определенный файл или каталог, добавьте его в файл с именем ignore , расположенным внутри каталога ~/.config/git . По умолчанию Git будет игнорировать все файлы и каталоги, перечисленные в глобальном файле ~/.config/git/ignore конфигурации. git Если каталог и ignore файл еще не существуют, их может потребоваться создать.
Исключение локальных файлов без создания файла .gitignore
Если вы не хотите создать файл для совместного .gitignore использования с другими пользователями, можно создать правила, которые не зафиксированы в репозитории. Этот метод можно использовать для локально создаваемых файлов, которые не должны создавать другие пользователи, например, для файлов, создаваемых редактором.
Используйте любимый текстовый редактор, чтобы открыть файл, вызываемый .git/info/exclude в корневом каталоге репозитория Git. Любое добавляемое здесь правило не будет синхронизироваться, и будут игнорироваться только файлы для локального репозитория.
- Откройте Терминал Терминал GIT Bash .
- Перейдите к расположению репозитория Git.
- Откройте файл .git/info/exclude с помощью избранного текстового редактора.
Дополнительные материалы
- Игнорировать файлы в документации по Git
- .gitignore в документации по Git
- Коллекция полезных шаблонов .gitignore в репозитории github/gitignore
- Сайт gitignore.io
Как правильно добавить файл gitignore?
‘#’ Lines starting with ‘#’ are considered comments. ‘#’ Ignore any file named foo.txt. foo.txt ‘#’ Ignore (generated) html files, *.html ‘#’ except foo.html which is maintained by hand. !foo.html ‘#’ Ignore objects and archives. *.[oa] .idea/ .target/ .out/
Отслеживать
36.1k 2 2 золотых знака 55 55 серебряных знаков 81 81 бронзовый знак
задан 6 июл 2016 в 12:42
10.9k 17 17 золотых знаков 62 62 серебряных знака 127 127 бронзовых знаков
Файл должен называться .gitignore
6 июл 2016 в 12:45
6 июл 2016 в 12:46@nzeemin следуя примеру github.com/github/gitignore не файл должен называться .gitignore , а его расширение. Верно?
6 июл 2016 в 12:51
@AlekseyTimoshchenko в мире unix всё, что начинается с точки — скрытый файл, не более
6 июл 2016 в 12:56расширение — это не более чем абстракция, которая принята как часть общей конвенции. Файл не обязан иметь его или часть до него.
6 июл 2016 в 13:16
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Файл должен быть обычным текстовым файлом, без расширения.
Называться он должен .gitignore (с точкой в начале).
Если у вас linux (или unix-like), то да, можно создать его через команду echo » > .gitignore или touch .gitignore . Но если вы не понимаете зачем это, то можете создать его в вашем любимом текстовом редакторе (только расширение убрать не забудьте).
У github есть отличный сборник файлов .gitignore для всех популярных языков программирования — просто выберите какой вам нужен и скопируйте к себе.
Git: Глобальный .gitignore файл (global gitignore)
Практически любое программное обеспечение в ходе своей работы создаёт временные файлы и директории. Для того чтобы случайно не добавить их в репозиторий проекта, используется файл игнорирования .gitignore .
При этом следует различать два уровня игнорирования: уровень операционной системы и уровень проекта.
Например, MacOS для своей работы создаёт файлы .DS_Store , директории __MACOS__ или Windows создаёт файлы thumb.db . Кроме того, различные IDE создают свои служебные файлы, например, директория .idea у редакторов на движке IntelliJ IDEA (на котором в том числе реализован rubymine).
В rails проектах .gitignore создается автоматически и уже содержит указания какие файлы и директории игнорировать по умолчанию. Например, там лежат файлы из директории log (логи), из директории tmp (кэш и прочие данные, сгенерированные в процессе работы приложения), файлы с базами данных (если для разработки в dev окружении используется sqlite).
Таким образом в глобальный .gitignore должны включаться только те файлы и папки которые есть только у вашего программного обеспечения и не должен как то затрагивать директорию с проектом.
Другим разработчикам незачем читать строчки кода в этом файле, относящиеся только к вашему окружению.
По умолчанию на nix системах гит смотрит на исключения, описанные в файле по адресу ~/.config/git/ignore (на Windows он находится %USERPROFILE%\git\ignore ). Если мы хотим добавить свой файл, то можно это сделать так.
Как создать глобальный .gitignore файл
Первый шаг: создать файл в домашнем каталоге пользователя, на linux так.
touch ~/.gitignoreНа винде создайте файл руками в домашней директории, например, C:/Users/Sasha .
Второй шаг: добавляем файлы (папки не распознаются)
# Это будет работать *.gz *.7z # это не будет работать так как это папки .vscode/ build/ # но можно добавить с указанием файлов .vscode/* build/*Указываем гиту на глобальный .gitignore
Третий шаг: подключение глобального файла игнорирования, чтобы список исключений из него всегда воспринимался гитом.
git config --global core.excludesFile '~/.gitignore'Для Windows cmd:
git config --global core.excludesFile "%USERPROFILE%\.gitignore"Для Windows PowerShell:
git config --global core.excludesFile "$Env:USERPROFILE\.gitignore"Если используется MacOS то файл должен иметь название .gitignore_global и соответственно изменения добавляются командой:
git config --global core.excludesfile ~/.gitignore_global