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

Уровни и файлы конфигурации git config
Команда git config принимает аргументы для указания уровня конфигурации, с которым нужно работать. При поиске значения конфигурации Git использует следующий порядок приоритетов (от наименьшего к наибольшему):
--system– Системная конфигурация применяется ко всем пользователям операционной системы и ко всем репозиториям. Файл системной конфигурации находится в каталоге установки Git.
Уровень конфигурации git config (system)
(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--global– Глобальная конфигурация применяется к текущему пользователю операционной системы. Значения глобальной конфигурации хранятся в файле в домашнем каталоге пользователя.
Уровень конфигурации git config (global)
~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows--local– Если не указан параметр конфигурации,git configпо умолчанию записывает на локальный уровень. В каталоге.gitрепозитория находится файл, хранящий локальные значения конфигурации.
Уровень конфигурации git config (local)
.git/configПримечание: Локальные настройки переопределяют глобальные, которые, в свою очередь, переопределяют системные.
Как записать значение
В данном примере значение "[email protected]" записывается в параметр конфигурации user.email. Используется глобальный уровень, чтобы установить значение для текущего пользователя операционной системы.
Установка пользователя git config
git config --global user.email "[email protected]"Использование git config
Основное назначение git config — получение значения конфигурации по его имени. Имена конфигурации состоят из раздела и ключа, разделенных точкой.
git config user email
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:
| Редактор | Команда конфигурации |
|---|---|
| Atom | git config --global core.editor "atom --wait" |
| emacs | git config --global core.editor "emacs" |
| nano | git config --global core.editor "nano -w" |
| vim | git 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" |
| Textmate | git config --global core.editor "mate -w" |
Цветной вывод
Git поддерживает цвета, что упрощает чтение вывода Git. Вы можете использовать цвета для настройки вывода. Для установки цветовых значений используется команда git config.
color.ui
Git автоматически раскрашивает большую часть своего вывода, но также существует главная переменная, если вы хотите установить другой цвет. Чтобы отключить весь цветной вывод Git в терминале, выполните следующее:
Установка color.ui в git config
git config --global color.ui falseЗначение по умолчанию для color.ui — auto, которое применяет цвета непосредственно к выводу терминала. При перенаправлении вывода в канал или файл коды цветов не выводятся.
Вы также можете установить значение 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
git config --global alias.ci commitПсевдонимы могут создавать мощные комбинации с другими псевдонимами.
Псевдонимы git config
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'?