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

git config

Описание

Команда git config — это утилита командной строки, которая устанавливает переменные конфигурации. Она управляет внешним видом и работой Git.

gitconfig

Уровни и файлы конфигурации git config

Команда git config принимает аргументы для указания уровня конфигурации, с которым нужно работать. При поиске значения конфигурации Git использует следующий порядок приоритетов (от наименьшего к наибольшему):

  1. --system – Системная конфигурация применяется ко всем пользователям операционной системы и ко всем репозиториям. Файл системной конфигурации находится в каталоге установки Git.

Уровень конфигурации git config (system)

bash
(prefix)/etc/gitconfig - on Unix systems
C:\Documents and Settings\All Users\Application Data\Git\config - Windows XP (deprecated)
C:\ProgramData\Git\config - Windows Vista and newer versions
  1. --global – Глобальная конфигурация применяется к текущему пользователю операционной системы. Значения глобальной конфигурации хранятся в файле в домашнем каталоге пользователя.

Уровень конфигурации git config (global)

bash
~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows
  1. --local – Если не указан параметр конфигурации, git config по умолчанию записывает на локальный уровень. В каталоге .git репозитория находится файл, хранящий локальные значения конфигурации.

Уровень конфигурации git config (local)

bash
.git/config

Примечание: Локальные настройки переопределяют глобальные, которые, в свою очередь, переопределяют системные.

Как записать значение

В данном примере значение "[email protected]" записывается в параметр конфигурации user.email. Используется глобальный уровень, чтобы установить значение для текущего пользователя операционной системы.

Установка пользователя git config

bash
git config --global user.email "[email protected]"

Использование git config

Основное назначение git config — получение значения конфигурации по его имени. Имена конфигурации состоят из раздела и ключа, разделенных точкой.

git config user email

bash
git config user.email

Здесь email является дочерним свойством блока конфигурации user.

Вы также можете вывести список всех активных настроек с помощью git config --list, удалить настройку командой git config --unset <key> или открыть файл конфигурации в редакторе по умолчанию через git config --edit. Для современных рабочих процессов git config --show-origin показывает, где определена каждая настройка, а git config --get-all <key> извлекает все значения для указанного ключа.

Редактор git config - core.editor

После настройки вашей учетной записи Git использует редактор по умолчанию для вашей системы, обычно это Vi или Vim. С помощью git config можно указать, какой редактор будет использовать Git. Ниже приведен список наиболее распространенных редакторов с командами git config:

РедакторКоманда конфигурации
Atomgit config --global core.editor "atom --wait"
emacsgit config --global core.editor "emacs"
nanogit config --global core.editor "nano -w"
vimgit config --global core.editor "vim"
Sublime Text (Mac)git config --global core.editor "subl -w"
Sublime Text (Win, 32-битная установка)git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w"
Sublime Text (Win, 64-битная установка)git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w"
Textmategit config --global core.editor "mate -w"

Цветной вывод

Git поддерживает цвета, что упрощает чтение вывода Git. Вы можете использовать цвета для настройки вывода. Для установки цветовых значений используется команда git config.

color.ui

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

Установка color.ui в git config

bash
git config --global color.ui false

Значение по умолчанию для color.uiauto, которое применяет цвета непосредственно к выводу терминала. При перенаправлении вывода в канал или файл коды цветов не выводятся.

Вы также можете установить значение color.ui в always. В этом случае коды цветов выводятся даже при перенаправлении вывода в файлы или каналы. Это может вызвать проблемы, так как принимающий канал может не ожидать ввод с цветовыми кодами.

Цветовые значения Git

Помимо color.ui, существуют и другие настройки цвета, которые можно установить в false, auto или always. Они могут принимать конкретные цветовые значения: normal, black, red, green, yellow, blue, magenta, cyan, white. Цвета можно указывать в виде шестнадцатеричных кодов, например #1c87c9, или значений ANSI 256, если терминал это поддерживает.

Настройки цветовой конфигурации Git

color.branchУстанавливает цвет вывода команды Git branch.
color.branch.<slot>Относится к выводу Git branch. <slot> может быть одним из следующих: 1. текущая ветка 2. локальная ветка 3. удаленная ветка 4. ветка upstream 5. обычная (любая другая ссылка)
color.diffДобавляет цвета выводу git diff, git log и git show
color.diff.<slot>Указывает Git, какой цвет следует использовать для определенной части патча (контекст, обычный текст, мета, фрагмент, старый, новый, коммит, пробелы).
color.decorate.<slot>Настраивает цвет для вывода git log --decorate. Поддерживаемые значения <slot>: branch, remote Branch, tag, stash, HEAD. Они применяются к локальным веткам, удаленным отслеживаемым веткам, тегам, сохраненным изменениям и HEAD соответственно.
color.grepДобавляет цвет выводу git grep.
color.grep.<slot>Применяется к git grep. Переменная <slot> указывает, к какой части вывода grep (контекст, имя файла, функция, номер строки, совпадение, контекст совпадения, выбранное совпадение, выбранное, разделитель) следует применить цвет.
color.interactiveДобавляет цвет интерактивным запросам и отображениям (например, git add --interactive, git clean --interactive)
color.interactive.<slot>Нацелен на "интерактивный вывод". Доступные значения <slot>: prompt, header, help, error.
color.pagerВключает или отключает цветной вывод при использовании пейджера.
color.showBranchВключает или отключает цветной вывод для команды git show branch.
color.statusВключает или отключает цветной вывод для Git status.
color.status.<slot>Задает пользовательский цвет для определенных элементов статуса git. <slot> поддерживает следующие значения: header, added or updated, changed, untracked, branch, nobranch, unmerged.

Псевдонимы git config

Псевдонимы — это пользовательские ярлыки, указывающие, какая команда будет разворачиваться в более длинные или комбинированные команды. С помощью псевдонимов нет необходимости вводить часто используемые команды вручную. Git имеет собственную систему псевдонимов, которая в основном используется для сокращения команды git commit. Для настройки псевдонимов используется команда git config.

Установка псевдонима git config

bash
git config --global alias.ci commit

Псевдонимы могут создавать мощные комбинации с другими псевдонимами.

Псевдонимы git config

bash
git config --global alias.amend ci --amend

В приведенном выше примере псевдоним amend объединяет псевдоним ci в новый псевдоним, который использует --amend.

Форматирование и пробелы

ФункцияОписаниеКоманда Git Config
indent-with-non-tabПодсвечивает строку, начинающуюся с пробелов вместо табуляции.git config --global core.whitespace "indent-with-non-tab,tab-in-indent,blank-at-eof,-trailing-space,-cr-at-eol"
tab-in-indentПодсвечивает начальную табуляцию как ошибку.(В сочетании с другими правилами)
blank-at-eofПодсвечивает пустые строки, вставленные в конце файла.(В сочетании с другими правилами)
trailing-spaceПодсвечивает пробелы в конце строки.(В сочетании с другими правилами)
cr-at-eolПодсвечивает возврат каретки в конце строки.(В сочетании с другими правилами)
tabwidth=<n>Указывает, сколько позиций занимает табуляция. По умолчанию 8. Допустимые значения: 1-63.git config --global core.whitespace "tabwidth=<n>"

Практика

Какое из следующих является правильным использованием команды 'git config'?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.