Перейти к содержимому

Как создать файл gitignore

  • автор:

Игнорировать изменения файлов с помощью 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 сообщать об изменениях в файле.

Удобное создание .gitignore под любые нужды

gitignore.io — простой и в то же время удобный сервис для быстрого создания одноименного файла.

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

Можно обращаться напрямую по ссылке. Допустим, для этого сайта (Symfony2 и PhpStorm) gitignore будет таким: http://www.gitignore.io/api/symfony2,phpstorm

Видео с демонстрацией возможностей:

Помимо онлайн-интерфейса есть возможность встроить генератор в консоль.

Что еще почитать
8 лет назад
13211 просмотров
Используем GitHub как CDN.
8 лет назад
21034 просмотра

Для полноценной работы по созданию сайтов вам обязателньо необходим хороший удобный редактор для PHP, HTML, CSS, JavaScript

Как создать файл .gitignore в Windows?

You must type a file name

Когда пытаюсь создать файл .gitignore в Windows, приводит к ошибке: Как можно создать файл .gitignore ?

Отслеживать
34k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
задан 28 июл 2015 в 8:13
Peter Olson Peter Olson
10.5k 7 7 золотых знаков 30 30 серебряных знаков 53 53 бронзовых знака
Связанный вопрос: superuser.com/q/64471
28 июл 2015 в 10:23
легко создается в Visual Studio Code.
3 мая 2019 в 15:31

6 ответов 6

Сортировка: Сброс на вариант по умолчанию

  • Можно создать файл .gitignore. , с точкой в конце. Точка в конце исчезает автоматическим образом.
  • Тоже возможно создать файл используя cmd.exe :
type nul > .gitignore 

Отслеживать
ответ дан 28 июл 2015 в 8:21
Peter Olson Peter Olson
10.5k 7 7 золотых знаков 30 30 серебряных знаков 53 53 бронзовых знака
@SergeySnegirev Да, я часто так делаю.
28 июл 2015 в 8:48
опа, нативный эквивалент touch, о котором я не сумел подумать! Круто!
28 июл 2015 в 8:50

@PeterOlson Ещё можно сразу же ответчать на вопрос, ещё до того, как его опубликуешь — есть в форме галка «Ответить на собственный вопрос»

28 июл 2015 в 8:51

Хмм, не совсем эквивалент touch, поскольку touch ещё и дату-время модификации исправляет, а type nul >>файл создает файл, но не меняет его время, если он уже был. Но для цели «создать файл нулевой длины» решение замечательное.

28 июл 2015 в 9:13

Интересно, а что мешало в XP создать файл из блокнота? Насколько я помню свой опыт с win98 — достаточно было изменить маску фильтра файлов *.txt (Текстовый документ) на *.* (Все файлы) .

21 фев 2017 в 17:09

  1. Создай файл gitignore.txt
  2. Отредактируй в текстовом редакторе по вкусу
  3. Далее шифт + правый клик мышкой внутри папки, где лежит файл
  4. Выбираешь «Open command window here» или как это там по-русски
  5. Запустится cmd.exe уже в этой папке. Пишешь ren gitignore.txt .gitignore , файл переименовывается.

Отслеживать
ответ дан 28 июл 2015 в 8:20
Sergey Snegirev Sergey Snegirev
1,674 11 11 серебряных знаков 21 21 бронзовый знак
+1 Это тоже вполне допустимый ответ, и вы сумели отвечать чуть до меня.
28 июл 2015 в 8:54

похожий ответ от @ajcw на en.SO. Если вы его использовали, то укажите ссылку на ответ и имя автора в вашем ответе.

2 авг 2017 в 8:06

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

Разумеется, потом его можно отредактировать, хоть вовсе оставить пустым.

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

Из git bash или cygwin работают следующие способы:

touch .gitignore echo '' > .gitignore 

Как создать gitignore или где его найти?

e232b7a93dff4a1d932f110835cef661.PNG

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

  • Вопрос задан более трёх лет назад
  • 15907 просмотров

2 комментария

Оценить 2 комментария

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

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