Gitignore как создать visual studio
Перейти к содержимому

Gitignore как создать visual studio

  • автор:

Игнорировать изменения файлов с помощью Git

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

В этой статье раскрываются следующие темы:

  • Игнорировать изменения в неотслеченных файлах с помощью .gitignore файла
  • Игнорировать изменения в неотслеченных файлах с помощью exclude файла
  • Прекращение отслеживания файла и пропуск изменений с помощью git update-index
  • Прекращение отслеживания файла и пропуск изменений с помощью git rm

Использование файла Gitignore

Вы можете запретить Git отслеживать определенные файлы в проекте, добавив и настроив .gitignore файл. Записи в .gitignore файле применяются только к неотслеченным файлам и не помешают Git сообщать об изменениях в отслеживаемых файлах. Отслеживаемые файлы — это файлы, которые были зафиксированы и существуют в последнем snapshot Git.

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

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

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

Visual Studio автоматически создает .gitignore файл для среды разработки Visual Studio при создании нового репозитория Git.

  • Visual Studio 2022
  • Visual Studio 2019 — меню Git
  • Visual Studio 2019 — Обозреватель команды

Visual Studio 2022 предоставляет возможности управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений. Visual Studio 2019 версии 16.8 также предлагает пользовательский интерфейс Git для команды Обозреватель. Дополнительные сведения см. на вкладке Visual Studio 2019 — team Обозреватель.

В окне Изменения Git щелкните правой кнопкой мыши любой измененный файл, который вы хотите игнорировать в Git, и выберите Игнорировать этот локальный элемент или Пропустить это расширение. Эти параметры меню не существуют для отслеживаемых файлов.

Снимок экрана: параметры контекстного меню для измененных файлов в окне

Visual Studio 2019 предоставляет возможности управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений.

В окне Изменения Git щелкните правой кнопкой мыши любой измененный файл, который вы хотите игнорировать в Git, и выберите Игнорировать этот локальный элемент или Пропустить это расширение. Эти параметры меню не существуют для отслеживаемых файлов.

Снимок экрана: параметры контекстного меню для измененных файлов в окне

Visual Studio 2019 версии 16.8 и более поздних версий предоставляет возможности управления версиями Git, сохраняя при этом пользовательский интерфейс Team Обозреватель Git. Чтобы использовать командную Обозреватель, снимите флажок Сервис>Параметры>Предварительные версии функций>Новый пользовательский интерфейс Git в строке меню. Функции Git можно использовать из любого интерфейса взаимозаменяемо.

В представлении Изменениякоманды Обозреватель щелкните правой кнопкой мыши любой измененный файл, который вы хотите игнорировать в Git, и выберите Пропустить этот локальный элемент или Пропустить это расширение. Эти параметры меню не существуют для отслеживаемых файлов.

Снимок экрана: параметры контекстного меню для измененных файлов в team Обозреватель в Visual Studio 2019.

Параметр Игнорировать этот локальный элемент добавляет новую запись в .gitignore файл и удаляет выбранный файл из списка измененных файлов.

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

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

Изменение файла Gitignore

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

Ниже приведены некоторые примеры распространенных шаблонов поиска файлов:

# Ignore all files with the specified name. # Scope is all repo folders. config.json # Ignore all files with the specified extension. # Scope is all repo folders. *.json # Add an exception so as to not ignore a file with the specified name. # Scope is all repo folders. !package.json # Ignore a file with the specified name. # Scoped to the 'logs' subfolder. /logs/test.logfile # Ignore all files with the specified name. # Scoped to the 'logs' subfolder and all folders beneath it. /logs/**/test.logfile # Ignore all files in the 'logs' subfolder. /logs/ 

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

Пользователи Windows должны использовать разделитель пути косой черты в .gitignore файле вместо обратной косой черты. Все пользователи должны добавить конечный / элемент при указании папки.

Использование глобального файла Gitignore

Файл можно назначить глобальным файлом .gitignore игнорирования, который применяется ко всем локальным репозиториям Git. Для этого используйте git config команду следующим образом:

git config core.excludesfile

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

Использование файла исключения

Вы также можете добавить записи шаблона поиска файлов в exclude файл в папке .git/info/ локального репозитория. Файл exclude позволяет Git узнать, какие неотслеченные файлы следует игнорировать, и использует тот же синтаксис шаблона поиска файлов, что .gitignore и файл.

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

Так как Git не фиксирует и не отправляет exclude файл, его можно безопасно использовать для пропуска файлов в локальной системе, не затрагивая других пользователей.

Используйте Git update-index для игнорирования изменений

Иногда бывает удобно временно прекратить отслеживание локального файла репозитория и заставить Git игнорировать изменения в файле. Например, может потребоваться настроить файл параметров для среды разработки без риска фиксации изменений. Для этого можно выполнить git update-index команду с флагом skip-worktree :

git update-index --skip-worktree

Чтобы возобновить отслеживание, выполните git update-index команду с флагом —no-skip-worktree .

Или вы можете временно прекратить отслеживание файла и заставить Git игнорировать изменения в файле с помощью git update-index команды с флагом assume-unchanged . Этот параметр менее эффективен, чем skip-worktree флаг, так как assume-unchanged флаг может быть отменен операцией Git pull , которая изменяет содержимое файла.

git update-index --assume-unchanged

Чтобы возобновить отслеживание, выполните git update-index команду с флагом —no-assume-unchanged .

Используйте Git rm, чтобы игнорировать изменения

Записи в .gitignore файле или exclude не влияют на файлы, которые уже отслеживает Git. Git отслеживает файлы, зафиксированные ранее. Чтобы окончательно удалить файл из snapshot Git, чтобы Git больше не отслеживал его, но не удаляя его из файловой системы, выполните следующие команды:

git rm --cached git commit

Затем используйте .gitignore запись файла или exclude , чтобы запретить Git сообщать об изменениях в файле.

Игнорирование файлов — Введение в Git

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

  • Инструментарий
    • Служебные файлы, добавляемые операционной системой — например, .DS_Store в MacOS
    • Конфигурационные и временные файлы редакторов — например, .idea или .vscode
    • Логи — в них содержится полезная информация для отладки, которая собирается во время запуска и работы приложения
    • Кеши — файлы, которые нужны для ускорения разных процессов
    • Результаты сборки проекта — например, после компиляции или сборки фронтенда
    • Зависимости, которые устанавливаются во время разработки — например, node_modules или vendor
    • Результаты выполнения тестов — например, информация о покрытии кода тестами

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

    Как правило, эти файлы не несут никакой пользы с точки зрения исходного кода. Они создаются:

    • Автоматически (кеши, логи)
    • По запросу (например, скачиваются зависимости или собирается проект)

    Главная проблема с этими файлами в их постоянном изменении — особенно при очень больших размерах проекта. Если добавлять их в репозиторий, то практически в каждом коммите будут не только изменения исходного кода, но и пачка изменений в этих файлах. Читать историю таких коммитов крайне сложно.

    Git позволяет гибко настраивать игнорирование определенных файлов и директорий. Делается это с помощью файла .gitignore, который нужно создать в корне проекта. В этот файл с помощью текстового редактора добавляются имена файлов и директорий, которые надо игнорировать:

    # В этом файле можно оставлять комментарии # Имя файла .gitignore # Файл нужно создать самостоятельно # Каждая строчка — это шаблон, по которому происходит игнорирование # Игнорируем файл в любой директории проекта access.log # Игнорируем директорию в любой директории проекта node_modules/ # Игнорируем каталог в корне рабочей директории /coverage/ # Игнорируем все файлы с расширением sqlite3 в директории db # При этом не игнорируются такие же файлы внутри любого вложенного каталога в db # Например, /db/something/lala.sqlite3 /db/*.sqlite3 # Игнорировать все .txt файлы в каталоге doc/ на всех уровнях вложенности doc/**/*.txt 

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

    Продолжим работать с .gitignore:

    touch .gitignore # Добавляем в файл правила игнорирования по примеру выше git add .gitignore git commit -m 'update gitignore' 

    Как только .gitignore создан и в него добавлен какой-то файл или директория, игнорирование заработает автоматически. Все новые файлы, попадающие под игнорирование, не отобразятся в выводе команды git status .

    Иногда бывает такое, что программист случайно уже добавил в репозиторий файл, который нужно проигнорировать. В этой ситуации недостаточно обновить правила игнорирования. Дополнительно придется удалить файл или директорию из Git с помощью git rm и закоммитить.

    Самостоятельная работа
    1. Добавьте файл .gitignore в проект
    2. Добавьте файл INFO.md в список игнорируемых файлов
    3. Удалите файл INFO.md из репозитория
    4. Создайте файл INFO.md и убедитесь в том, что git status его не отображает
    5. Залейте изменения на GitHub
    Дополнительные материалы
    1. Коллекция полезных gitignore для всех ситуаций
    2. Инструкция от Atlassian по gitignore

    Аватары экспертов Хекслета

    Остались вопросы? Задайте их в разделе «Обсуждение»

    Вам ответят команда поддержки Хекслета или другие студенты

    Об обучении на Хекслете

    • Статья «Как учиться и справляться с негативными мыслями»
    • Статья «Ловушки обучения»
    • Статья «Сложные простые задачи по программированию»
    • Вебинар « Как самостоятельно учиться »

    Открыть доступ

    Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

    • 130 курсов, 2000+ часов теории
    • 1000 практических заданий в браузере
    • 360 000 студентов

    Наши выпускники работают в компаниях:

    Пропуск файлов

    Вы можете настроить Git для игнорирования файлов, которые вы не хотите возвращать в GitHub.

    Platform navigation

    Настройка игнорируемых файлов для одного репозитория

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

    GitHub поддерживает официальный список рекомендуемых .gitignore файлов для многих популярных операционных систем, сред и языков в общедоступный репозиторий github/gitignore. Вы также можете использовать gitignore.io для создания .gitignore файла для операционной системы, языка программирования или интегрированной среды разработки. Дополнительные сведения см. в разделе github/gitignore и на сайте gitignore.io.

    1. Откройте Терминал Терминал GIT Bash .
    2. Перейдите к расположению репозитория Git.
    3. .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. Любое добавляемое здесь правило не будет синхронизироваться, и будут игнорироваться только файлы для локального репозитория.

    1. Откройте Терминал Терминал GIT Bash .
    2. Перейдите к расположению репозитория Git.
    3. Откройте файл .git/info/exclude с помощью избранного текстового редактора.

    Дополнительные материалы

    • Игнорировать файлы в документации по Git
    • .gitignore в документации по Git
    • Коллекция полезных шаблонов .gitignore в репозитории github/gitignore
    • Сайт gitignore.io

    Игнорирование в 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
    • Общие файлы .gitignore в вашем репозитории
    • Персональные правила игнорирования в Git
    • Глобальные правила игнорирования в Git
    • Игнорирование ранее закоммиченного файла
    • Коммит игнорируемого файла
    • Скрытие изменений в игнорируем файле
    • Отладка файлов .gitignore

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *