Русский ▾ Topics ▾ Latest version ▾ git-config last updated in 2.54.0

НАЗВАНИЕ

git-config — Получение и установка опций репозитория или глобальных опций

ОБЗОР

git config list [<параметр-файла>] [<параметр-отображения>] [--includes]
git config get [<параметр-файла>] [<параметр-отображения>] [--includes] [--all] [--regexp] [--value=<шаблон>] [--fixed-value] [--default=<значение-по-умолчанию>] [--url=<url>] <имя>
git config set [<параметр-файла>] [--type=<тип>] [--all] [--value=<шаблон>] [--fixed-value] <имя> <значение>
git config unset [<параметр-файла>] [--all] [--value=<шаблон>] [--fixed-value] <имя>
git config rename-section [<параметр-файла>] <старое-имя> <новое-имя>
git config remove-section [<параметр-файла>] <имя>
git config edit [<параметр-файла>]
git config [<параметр-файла>] --get-colorbool <имя> [<stdout-это-tty>]

ОПИСАНИЕ

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

Несколько строк могут быть добавлены к параметру с помощью параметра --append. Если вы хотите обновить или снять параметр, который может встречаться в нескольких строках, необходимо указать --value=<шаблон> (который является расширенным регулярным выражением, если только не указан параметр --fixed-value). Только существующие значения, соответствующие шаблону, обновляются или снимаются. Если вы хотите обрабатывать строки, которые не соответствуют шаблону, просто добавьте один восклицательный знак в начале (см. также ПРИМЕРЫ), но обратите внимание, что это работает только тогда, когда параметр --fixed-value не используется.

Параметр --type=<тип> указывает git config гарантировать, что входящие и исходящие значения могут быть канонизированы в соответствии с указанным <типом>. Если --type=<тип> не указан, канонизация выполняться не будет. Вызывающие могут снять существующий спецификатор --type с помощью --no-type.

При чтении значения по умолчанию читаются из системных, глобальных и локальных для репозитория файлов конфигурации, а параметры --system, --global, --local, --worktree и --file <имя-файла> можно использовать, чтобы указать команде читать только из этого местоположения (см. ФАЙЛЫ).

При записи новое значение по умолчанию записывается в локальный для репозитория файл конфигурации, а параметры --system, --global, --worktree, --file <имя-файла> можно использовать, чтобы указать команде записывать в это местоположение (вы можете указать --local, но это значение по умолчанию).

Эта команда завершится с ненулевым статусом при ошибке. Некоторые коды выхода:

  • Раздел или ключ недействительны (ret=1),

  • не указан раздел или имя (ret=2),

  • файл конфигурации недействителен (ret=3),

  • файл конфигурации не может быть записан (ret=4),

  • вы пытаетесь снять параметр, который не существует (ret=5),

  • вы пытаетесь снять/установить параметр, для которого совпадает несколько строк (ret=5), или

  • вы пытаетесь использовать недопустимое регулярное выражение (ret=6).

В случае успеха команда возвращает код выхода 0.

Список всех доступных переменных конфигурации можно получить с помощью команды git help --config.

КОМАНДЫ

list

Перечислить все переменные и их значения, установленные в конфигурационном файле.

get

Выдаёт значение указанного ключа. Если ключ присутствует в конфигурации несколько раз, выдаёт последнее значение. Если указан --all, выдаёт все значения, связанные с ключом. Возвращает код ошибки 1, если ключ отсутствует.

set

Устанавливает значение для одного или нескольких параметров конфигурации. По умолчанию эта команда отказывается записывать многозначные параметры конфигурации. Передача --all заменит все многозначные параметры конфигурации на новое значение, тогда как --value= заменит все параметры конфигурации, значения которых соответствуют указанному шаблону.

unset

Снимает значение для одного или нескольких параметров конфигурации. По умолчанию эта команда отказывается снимать многозначные ключи. Передача --all снимет все многозначные параметры конфигурации, тогда как --value снимет все параметры конфигурации, значения которых соответствуют указанному шаблону.

rename-section

Переименовать указанную секцию.

remove-section

Удалить из конфигурационного файла указанную секцию.

edit

Открывает редактор для изменения указанного файла конфигурации; --system, --global, --local (по умолчанию), --worktree, или --file <файл-конфигурации>.

ПАРАМЕТРЫ

--replace-all

Поведение по умолчанию — замена не более одной строки. Это заменяет все строки, соответствующие ключу (и, опционально, --value=<шаблон>).

--append

Добавляет новую строку к параметру без изменения существующих значений. Это то же самое, что указать --value=^$ в set.

--comment <сообщение>

Добавляет комментарий в конец новых или изменённых строк.

Если <сообщение> начинается с одного или нескольких пробелов, за которыми следует "", оно используется как есть. Если оно начинается с "", перед его использованием добавляется пробел. В противном случае к нему добавляется строка " # " (пробел, за которым следует решётка, за которой следует пробел). И результирующая строка помещается сразу после значения, определённого для переменной. <сообщение> не должно содержать символов перевода строки (многострочные комментарии не разрешены).

--all

С get возвращает все значения для многозначного ключа.

--regexp

С get интерпретирует имя как регулярное выражение. Сопоставление с регулярным выражением в настоящее время чувствительно к регистру и выполняется против канонизированной версии ключа, в которой имена разделов и переменных приводятся к нижнему регистру, а имена подразделов — нет.

--url=<URL>

Когда указано двухкомпонентное <имя> как <раздел>.<ключ>, возвращается значение для <раздел>.<URL>.<ключ>, чья часть <URL> лучше всего соответствует данному URL (если такого ключа не существует, значение для <раздел>.<ключ> используется как резервное). Когда указан только <раздел> в качестве имени, сделать это для всех ключей в разделе и перечислить их. Возвращает код ошибки 1, если значение не найдено.

--global

Для записи параметров: записывать в глобальный файл ~/.gitconfig, а не в .git/config репозитория, записывать в файл $XDG_CONFIG_HOME/git/config, если этот файл существует, а файл ~/.gitconfig не существует.

Для чтения параметров: читать только из глобального ~/.gitconfig и из $XDG_CONFIG_HOME/git/config, а не из всех доступных файлов.

См. также ФАЙЛЫ.

--system

Для записи параметров: записывать в общесистемный $(prefix)/etc/gitconfig, а не в .git/config репозитория.

Для чтения параметров: читать только из общесистемного $(prefix)/etc/gitconfig, а не из всех доступных файлов.

См. также ФАЙЛЫ.

--local

Для записи параметров: записывать в файл .git/config репозитория. Это поведение по умолчанию.

Для чтения параметров: читать только из .git/config репозитория, а не из всех доступных файлов.

См. также ФАЙЛЫ.

--worktree

Аналогично --local, за исключением того, что $GIT_DIR/config.worktree читается или записывается, если включён extensions.worktreeConfig. Если не включён, то это то же самое, что --local. Обратите внимание, что $GIT_DIR равен $GIT_COMMON_DIR для основного рабочего каталога, но имеет вид $GIT_DIR/worktrees/<id>/ для других рабочих каталогов. Чтобы узнать, как включить extensions.worktreeConfig, см. git-worktree[1].

-f <файл-конфигурации>
--file <файл-конфигурации>

Для записи параметров: записывать в указанный файл, а не в .git/config репозитория.

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

См. также ФАЙЛЫ.

--blob <blob-объект>

Аналогично --file, но использовать указанный blob-объект вместо файла. Например, вы можете использовать master:.gitmodules, чтобы читать значения из файла .gitmodules в ветке master. Более полный список способов написания имён blob-объектов см. в разделе "ЗАДАНИЕ РЕВИЗИЙ" в gitrevisions[7].

--value=<шаблон>
--no-value

С get, set и unset сопоставлять только с <шаблон>. Шаблон является расширенным регулярным выражением, если только не указан --fixed-value.

Используйте --no-value, чтобы снять <шаблон>.

--fixed-value

При использовании с --value=<шаблон> обрабатывать <шаблон> как точную строку вместо регулярного выражения. Это ограничит сопоставляемые пары имя/значение только теми, где значение точно равно <шаблон>.

--type <тип>

git config гарантирует, что любой ввод или вывод действителен в соответствии с заданными ограничениями типа, и будет канонизировать исходящие значения в канонической форме <типа>.

Допустимыми `<тип>`ами являются:

  • bool: канонизировать значения true, yes, on и положительные числа как "true", а значения false, no, off и 0 как "false".

  • int: канонизировать значения как простые десятичные числа. Необязательный суффикс k, m или g приведёт к умножению значения на 1024, 1048576 или 1073741824 при вводе.

  • bool-or-int: канонизировать в соответствии с bool или int, как описано выше.

  • path: канонизировать путём раскрытия начального ~ в значение $HOME и ~user в домашний каталог для указанного пользователя. Этот спецификатор не имеет эффекта при установке значения (но вы можете использовать git config раздел.переменная ~/ из командной строки, чтобы ваша оболочка выполнила раскрытие.)

  • expiry-date: канонизировать путём преобразования из фиксированной или относительной строки даты в метку времени. Этот спецификатор не имеет эффекта при установке значения.

  • color: При получении значения канонизировать путём преобразования в escape-последовательность цвета ANSI. При установке значения выполняется проверка работоспособности, чтобы убедиться, что данное значение может быть канонизировано как цвет ANSI, но оно записывается как есть.

--bool
--int
--bool-or-int
--path
--expiry-date

Исторические параметры для выбора спецификатора типа. Вместо этого предпочтительнее использовать --type (см. выше).

--no-type

Снимает ранее установленный спецификатор типа (если он был установлен ранее). Этот параметр требует, чтобы git config не канонизировал полученную переменную. --no-type не имеет эффекта без --type=<тип> или --<тип>.

-z
--null

Для всех параметров, которые выводят значения и/или ключи, всегда завершать значения нулевым символом (вместо новой строки). Использовать новую строку в качестве разделителя между ключом и значением. Это позволяет безопасно анализировать вывод, не путаясь, например, из-за значений, содержащих разрывы строк.

--name-only

Выводить только имена переменных конфигурации для list или get.

--show-names
--no-show-names

С get показывать ключи конфигурации в дополнение к их значениям. По умолчанию используется --no-show-names, если только не указан --url и в <имя> нет подразделов.

--show-origin

Дополняет вывод всех запрошенных параметров конфигурации типом источника (файл, стандартный ввод, blob-объект, командная строка) и фактическим источником (путь к файлу конфигурации, ссылка или идентификатор blob-объекта, если применимо).

--show-scope

Аналогично --show-origin тем, что дополняет вывод всех запрошенных параметров конфигурации областью действия этого значения (рабочий каталог, локальный, глобальный, системный, команда).

--get-colorbool <имя> [<stdout-это-tty>]

Находит настройку цвета для <имя> (например, color.diff) и выводит "true" или "false". <stdout-это-tty> должно быть либо "true", либо "false" и учитывается, когда в конфигурации указано "auto". Если <stdout-это-tty> отсутствует, то проверяет стандартный вывод самой команды и завершается со статусом 0, если цвет должен использоваться, или со статусом 1 в противном случае. Когда настройка цвета для имя не определена, команда использует color.ui в качестве резервного варианта.

--includes
--no-includes

Соблюдать директивы include.* в файлах конфигурации при поиске значений. По умолчанию off, когда указан конкретный файл (например, с помощью --file, --global и т.д.), и on при поиске во всех файлах конфигурации.

--default <значение>

При использовании get, если запрошенная переменная не найдена, вести себя так, как если бы <значение> было значением, присвоенным этой переменной.

УСТАРЕВШИЕ РЕЖИМЫ

Следующие режимы устарели в пользу подкоманд. Рекомендуется перейти на новый синтаксис.

git config <имя>

Заменено на git config get <имя>.

git config <имя> <значение> [<шаблон-значения>]

Заменено на git config set [--value=<шаблон>] <имя> <значение>.

-l
--list

Заменено на git config list.

--get <имя> [<шаблон-значения>]

Заменено на git config get [--value=<шаблон>] <имя>.

--get-all <имя> [<шаблон-значения>]

Заменено на git config get [--value=<шаблон>] --all <имя>.

--get-regexp <регулярное-выражение-имени>

Заменено на git config get --all --show-names --regexp <регулярное-выражение-имени>.

--get-urlmatch <имя> <URL>

Заменено на git config get --all --show-names --url=<URL> <имя>.

--get-color <имя> [<значение-по-умолчанию>]

Заменено на git config get --type=color [--default=<значение-по-умолчанию>] <имя>.

--add <имя> <значение>

Заменено на git config set --append <имя> <значение>.

--unset <имя> [<шаблон-значения>]

Заменено на git config unset [--value=<шаблон>] <имя>.

--unset-all <имя> [<шаблон-значения>]

Заменено на git config unset [--value=<шаблон>] --all <имя>.

--rename-section <старое-имя> <новое-имя>

Заменено на git config rename-section <старое-имя> <новое-имя>.

--remove-section <имя>

Заменено на git config remove-section <имя>.

-e
--edit

Заменено на git config edit.

КОНФИГУРАЦИЯ

pager.config учитывается только при выводе списка конфигурации, т.е. при использовании list или get, которые могут возвращать несколько результатов. По умолчанию используется пейджер.

ФАЙЛЫ

По умолчанию git config читает параметры конфигурации из нескольких файлов:

$(prefix)/etc/gitconfig

Системный файл конфигурации.

$XDG_CONFIG_HOME/git/config
~/.gitconfig

Пользовательские файлы конфигурации. Когда переменная среды XDG_CONFIG_HOME не установлена или пуста, $HOME/.config/ используется как $XDG_CONFIG_HOME.

Они также называются «глобальными» файлами конфигурации. Если оба файла существуют, оба файла читаются в порядке, указанном выше.

$GIT_DIR/config

Файл конфигурации, специфичный для репозитория.

$GIT_DIR/config.worktree

Это необязательно и используется только тогда, когда extensions.worktreeConfig присутствует в $GIT_DIR/config.

Вы также можете предоставить дополнительные параметры конфигурации при запуске любой команды git, используя параметр -c. Подробности см. в git[1].

Параметры будут читаться из всех доступных файлов. Если глобальные или общесистемные файлы конфигурации отсутствуют или нечитаемы, они будут проигнорированы. Если файл конфигурации репозитория отсутствует или нечитаем, git config завершится с ненулевым кодом ошибки. Сообщение об ошибке выдаётся, если файл нечитаем, но не если он отсутствует.

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

По умолчанию параметры записываются только в файл конфигурации, специфичный для репозитория. Обратите внимание, что это также влияет на такие параметры, как set и unset. git config всегда изменяет только один файл за раз.

Вы можете ограничить, какие источники конфигурации читаются или в которые записываются, указав путь к файлу с помощью параметра --file или указав область действия конфигурации с помощью --system, --global, --local или --worktree. Подробнее см. ПАРАМЕТРЫ выше.

ОБЛАСТИ ДЕЙСТВИЯ

Каждый источник конфигурации попадает в определённую область действия конфигурации. Области действия:

система

$(prefix)/etc/gitconfig

глобально

$XDG_CONFIG_HOME/git/config

~/.gitconfig

локально

$GIT_DIR/config

рабочая копия (worktree)

$GIT_DIR/config.worktree

команда

Переменные среды GIT_CONFIG_{COUNT,KEY,VALUE} (см. ОКРУЖЕНИЕ ниже)

параметр -c

За исключением command, каждая область действия соответствует параметру командной строки: --system, --global, --local, --worktree.

При чтении параметров указание области действия приведёт к чтению параметров только из файлов в этой области действия. При записи параметров указание области действия приведёт к записи в файлы в этой области действия (вместо файла конфигурации, специфичного для репозитория). Полное описание см. в ПАРАМЕТРЫ выше.

Большинство параметров конфигурации учитываются независимо от области действия, в которой они определены, но некоторые параметры учитываются только в определённых областях действия. Полные сведения см. в документации по соответствующему параметру.

Защищённая конфигурация

Защищённая конфигурация относится к областям действия system, global и command. По соображениям безопасности некоторые параметры учитываются только тогда, когда они указаны в защищённой конфигурации, и игнорируются в противном случае.

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

ОКРУЖЕНИЕ

GIT_CONFIG_GLOBAL
GIT_CONFIG_SYSTEM

Брать конфигурацию из указанных файлов вместо глобальной или системной конфигурации. Подробности см. в git[1].

GIT_CONFIG_NOSYSTEM

Следует ли пропускать чтение настроек из общесистемного файла $(prefix)/etc/gitconfig. Подробности см. в git[1].

См. также ФАЙЛЫ.

GIT_CONFIG_COUNT
GIT_CONFIG_KEY_<n>
GIT_CONFIG_VALUE_<n>

Если GIT_CONFIG_COUNT установлен в положительное число, все пары среды GIT_CONFIG_KEY_<n> и GIT_CONFIG_VALUE_<n> до этого числа будут добавлены в конфигурацию времени выполнения процесса. Пары конфигурации индексируются с нуля. Любой отсутствующий ключ или значение рассматривается как ошибка. Пустой GIT_CONFIG_COUNT обрабатывается так же, как GIT_CONFIG_COUNT=0, то есть никакие пары не обрабатываются. Эти переменные среды будут переопределять значения в файлах конфигурации, но сами будут переопределены любыми явными параметрами, переданными через git -c.

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

GIT_CONFIG

Если параметр --file не предоставлен git config, использовать файл, заданный GIT_CONFIG, как если бы он был предоставлен через --file. Эта переменная не влияет на другие команды Git и в основном предназначена для исторической совместимости; обычно нет причин использовать её вместо параметра --file.

ПРИМЕРЫ

Дан файл .git/config, подобный этому:

#
# Это файл конфигурации, и
# символ '#' или ';' обозначает
# комментарий
#

; основные переменные
[core]
	; Не доверять режимам файлов
	filemode = false

; Наш алгоритм сравнения
[diff]
	external = /usr/local/bin/diff-wrapper
	renames = true

; Настройки прокси
[core]
	gitproxy=proxy-command for kernel.org
	gitproxy=default-proxy ; для всех остальных

; HTTP
[http]
	sslVerify
[http "https://weak.example.com"]
	sslVerify = false
	cookieFile = /tmp/cookie.txt

вы можете установить filemode в true с помощью

% git config set core.filemode true

Гипотетические записи команды прокси на самом деле имеют постфикс, чтобы различать, к какому URL они применяются. Вот как изменить запись для kernel.org на "ssh".

% git config set --value='for kernel.org$' core.gitproxy '"ssh" for kernel.org'

Это гарантирует, что заменяется только пара ключ/значение для kernel.org.

Чтобы удалить запись для renames, выполните

% git config unset diff.renames

Если вы хотите удалить запись для многозначной переменной (например, core.gitproxy выше), вы должны предоставить регулярное выражение, соответствующее значению ровно одной строки.

Чтобы запросить значение для данного ключа, выполните

% git config get core.filemode

или, чтобы запросить многозначную переменную:

% git config get --value="for kernel.org$" core.gitproxy

Если вы хотите узнать все значения для многозначной переменной, выполните:

% git config get --all --show-names core.gitproxy

Если вы любите жить опасно, вы можете заменить все core.gitproxy новым с помощью

% git config set --all core.gitproxy ssh

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

% git config set --value='! for ' core.gitproxy ssh

Чтобы действительно сопоставлять только значения с восклицательным знаком, вы должны

% git config set --value='[!]' раздел.ключ значение

Чтобы добавить новый прокси, не изменяя ни одного из существующих, используйте

% git config set --append core.gitproxy '"proxy-command" for example.com'

Пример использования пользовательского цвета из конфигурации в вашем сценарии:

#!/bin/sh
WS=$(git config get --type=color --default="blue reverse" color.diff.whitespace)
RESET=$(git config get --type=color --default="reset" "")
echo "${WS}ваш цвет пробелов или синий обратный${RESET}"

Для URL-адресов в https://weak.example.com http.sslVerify установлен в false, в то время как для всех остальных он установлен в true:

% git config get --type=bool --url=https://good.example.com http.sslverify
true
% git config get --type=bool --url=https://weak.example.com http.sslverify
false
% git config get --url=https://weak.example.com http
http.cookieFile /tmp/cookie.txt
http.sslverify false

ФАЙЛ КОНФИГУРАЦИИ

Файл конфигурации Git содержит ряд переменных, влияющих на поведение команд Git. Файлы .git/config и, возможно, config.worktree (см. раздел «ФАЙЛ КОНФИГУРАЦИИ» в git-worktree[1]) в каждом репозитории используются для хранения конфигурации для этого репозитория, а $HOME/.gitconfig используется для хранения общепользовательской конфигурации в качестве запасных значений для файла .git/config. Файл /etc/gitconfig можно использовать для хранения общесистемной конфигурации по умолчанию.

Переменные конфигурации используются как внутренними (plumbing) командами Git, так и высокоуровневыми (porcelain). Переменные разделены на разделы, причём полное имя переменной — это последний сегмент, разделённый точками, а имя раздела — всё, что находится перед последней точкой. Имена переменных не чувствительны к регистру, могут содержать только буквенно-цифровые символы и - и должны начинаться с буквы. Некоторые переменные могут встречаться несколько раз; в этом случае говорят, что переменная является многозначной.

Синтаксис

Синтаксис довольно гибкий и свободный. Пробельные символы, которыми в данном контексте являются символ пробела (SP) и горизонтальная табуляция (HT), в основном игнорируются. Символы # и ; начинают комментарии до конца строки. Пустые строки игнорируются.

Файл состоит из разделов и переменных. Раздел начинается с имени раздела в квадратных скобках и продолжается до начала следующего раздела. Имена разделов не чувствительны к регистру. В именах разделов разрешены только буквенно-цифровые символы, - и .. Каждая переменная должна принадлежать некоторому разделу, что означает, что перед первой установкой переменной должен быть заголовок раздела.

Разделы могут быть дополнительно разделены на подразделы. Чтобы начать подраздел, поместите его имя в двойные кавычки, отделённые пробелом от имени раздела, в заголовке раздела, как в примере ниже:

	[раздел "подраздел"]

Имена подразделов чувствительны к регистру и могут содержать любые символы, кроме новой строки и нулевого байта. Двойные кавычки " и обратную косую черту можно включить, экранируя их как \" и \\ соответственно. Обратные косые черты перед другими символами отбрасываются при чтении; например, \t читается как t, а \0 читается как 0. Заголовки разделов не могут занимать несколько строк. Переменные могут принадлежать непосредственно разделу или данному подразделу. Вы можете иметь [раздел], если у вас есть [раздел "подраздел"], но это не обязательно.

Существует также устаревший синтаксис [раздел.подраздел]. При этом синтаксисе имя подраздела преобразуется в нижний регистр, а также сравнивается с учётом регистра. Эти имена подразделов подчиняются тем же ограничениям, что и имена разделов.

Все остальные строки (и остаток строки после заголовка раздела) распознаются как установка переменных в форме имя = значение (или просто имя, что является сокращением, означающим, что переменная является логической «true»). Имена переменных не чувствительны к регистру, могут содержать только буквенно-цифровые символы и - и должны начинаться с буквы.

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

Если значение должно содержать начальные или конечные пробельные символы, оно должно быть заключено в двойные кавычки ("). Внутри двойных кавычек символы двойной кавычки (") и обратной косой черты (\) должны быть экранированы: используйте \" для " и \\ для \.

Распознаются следующие escape-последовательности (кроме \" и \\): \n для символа новой строки (NL), \t для горизонтальной табуляции (HT, TAB) и \b для backspace (BS). Другие escape-последовательности символов (включая восьмеричные escape-последовательности) недействительны.

Включает

Разделы include и includeIf позволяют включать директивы конфигурации из другого источника. Эти разделы ведут себя идентично друг другу, за исключением того, что разделы includeIf могут быть проигнорированы, если их условие не вычисляется как true; см. «Условные включения» ниже.

Вы можете включить файл конфигурации из другого, установив специальную переменную include.path (или includeIf.*.path) в имя файла, который должен быть включён. Переменная принимает имя пути в качестве значения и подвержена расширению тильды. Эти переменные могут быть заданы несколько раз.

Содержимое включаемого файла вставляется немедленно, как если бы оно было найдено в месте расположения директивы include. Если значение переменной является относительным путём, путь считается относительным к файлу конфигурации, в котором была найдена директива include. Примеры см. ниже.

Условные включения

Вы можете условно включить файл конфигурации из другого, установив переменную includeIf.<условие>.path в имя включаемого файла.

Условие начинается с ключевого слова, за которым следует двоеточие и некоторые данные, формат и значение которых зависят от ключевого слова. Поддерживаются следующие ключевые слова:

gitdir

Данные, следующие за ключевым словом gitdir и двоеточием, используются в качестве glob-шаблона. Если местоположение каталога .git соответствует шаблону, условие включения выполнено.

Местоположение .git может быть автоматически обнаружено или получено из переменной среды $GIT_DIR. Если репозиторий автоматически обнаружен через файл .git (например, из подмодулей или связанной рабочей копии), местоположением .git будет конечное местоположение каталога .git, а не то, где находится файл .git.

Шаблон может содержать стандартные wildcard-символы glob и два дополнительных, **/ и /**, которые могут соответствовать нескольким компонентам пути. Подробности см. в gitignore[5]. Для удобства:

  • Если шаблон начинается с ~/, ~ будет заменён содержимым переменной среды HOME.

  • Если шаблон начинается с ./, он заменяется каталогом, содержащим текущий файл конфигурации.

  • Если шаблон не начинается с ~/, ./ или /, автоматически добавляется **/. Например, шаблон foo/bar становится **/foo/bar и будет соответствовать /any/path/to/foo/bar.

  • Если шаблон заканчивается на /, автоматически добавляется **. Например, шаблон foo/ становится foo/**. Другими словами, он соответствует "foo" и всему, что внутри, рекурсивно.

gitdir/i

Это то же самое, что и gitdir, за исключением того, что сопоставление выполняется без учёта регистра (например, в файловых системах, не чувствительных к регистру)

onbranch

Данные, следующие за ключевым словом onbranch и двоеточием, интерпретируются как шаблон со стандартными wildcard-символами glob и двумя дополнительными, **/ и /**, которые могут соответствовать нескольким компонентам пути. Если мы находимся в рабочей копии, где имя ветки, которая в данный момент переключена, соответствует шаблону, условие включения выполнено.

Если шаблон заканчивается на /, автоматически добавляется **. Например, шаблон foo/ становится foo/**. Другими словами, он соответствует всем веткам, которые начинаются с foo/. Это полезно, если ваши ветки организованы иерархически, и вы хотите применить конфигурацию ко всем веткам в этой иерархии.

hasconfig:remote.*.url

Данные, следующие за этим ключевым словом и двоеточием, интерпретируются как шаблон со стандартными wildcard-символами glob и двумя дополнительными, **/ и /**, которые могут соответствовать нескольким компонентам. При первом обнаружении этого ключевого слова остальная часть файлов конфигурации будет просканирована на наличие внешних URL-адресов (без применения каких-либо значений). Если существует хотя бы один внешний URL-адрес, соответствующий этому шаблону, условие включения выполнено.

Файлы, включённые этой опцией (прямо или косвенно), не могут содержать внешние URL-адреса.

Обратите внимание, что в отличие от других условий includeIf, разрешение этого условия зависит от информации, которая ещё неизвестна на момент чтения условия. Типичный вариант использования — эта опция присутствует в конфигурации системного или глобального уровня, а внешний URL-адрес находится в конфигурации локального уровня; отсюда необходимость сканирования вперёд при разрешении этого условия. Чтобы избежать проблемы курицы и яйца, при которой потенциально включаемые файлы могут влиять на то, будут ли такие файлы включены, Git разрывает цикл, запрещая этим файлам влиять на разрешение этих условий (таким образом, запрещая им объявлять внешние URL-адреса).

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

Ещё несколько замечаний о сопоставлении с помощью gitdir и gitdir/i:

  • Символические ссылки в $GIT_DIR не разрешаются перед сопоставлением.

  • Как версия пути с символической ссылкой, так и версия realpath будут сопоставлены вне $GIT_DIR. Например, если ~/git является символической ссылкой на /mnt/storage/git, то и gitdir:~/git, и gitdir:/mnt/storage/git будут соответствовать.

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

  • Обратите внимание, что «../» не является специальным и будет сопоставляться буквально, что вряд ли вам нужно.

Пример

# Основные переменные
[core]
	; Не доверять режимам файлов
	filemode = false

# Наш алгоритм сравнения
[diff]
	external = /usr/local/bin/diff-wrapper
	renames = true

[branch "devel"]
	remote = origin
	merge = refs/heads/devel

# Настройки прокси
[core]
	gitProxy="ssh" for "kernel.org"
	gitProxy=default-proxy ; для остальных

[include]
	path = /path/to/foo.inc ; включить по абсолютному пути
	path = foo.inc ; найти «foo.inc» относительно текущего файла
	path = ~/foo.inc ; найти «foo.inc» в вашем каталоге `$HOME`

; включить, если $GIT_DIR — это /path/to/foo/.git
[includeIf "gitdir:/path/to/foo/.git"]
	path = /path/to/foo.inc

; подключить для всех репозиториев внутри /path/to/group
[includeIf "gitdir:/path/to/group/"]
	path = /path/to/foo.inc

; подключить для всех репозиториев внутри $HOME/to/group
[includeIf "gitdir:~/to/group/"]
	path = /path/to/foo.inc

; относительные пути всегда отсчитываются от подключающего
; файла (если условие истинно); их расположение не
; зависит от условия
[includeIf "gitdir:/path/to/group/"]
	path = foo.inc

; подключить только если мы находимся в рабочем дереве, где
; в данный момент извлечена ветка foo-branch
[includeIf "onbranch:foo-branch"]
	path = foo.inc

; подключить только если существует удалённый репозиторий с данным URL (примечание:
; такой URL может быть указан позже в этом файле или в файле,
; прочитанном после этого, как показано в примере)
[includeIf "hasconfig:remote.*.url:https://example.com/**"]
	path = foo.inc
[remote "origin"]
	url = https://example.com/git

Значения

Значения многих переменных трактуются как простые строки, но есть переменные, принимающие значения определённых типов, и существуют правила их записи.

логический

Когда говорится, что переменная принимает логическое значение, допускаются многие синонимы для true и false; все они нечувствительны к регистру.

правда

Литералы для логического значения «истина»: yes, on, true и 1. Также переменная, определённая без = <значение>, считается истинной.

ложь

Литералы для логического значения «ложь»: no, off, false, 0 и пустая строка.

При преобразовании значения в каноническую форму с помощью спецификатора типа --type=bool команда git config гарантирует, что вывод будет "true" или "false" (в нижнем регистре).

целое число

Значение для многих переменных, указывающих различные размеры, может иметь суффикс k, M,…​ означающий "умножить число на 1024", "на 1024x1024" и т.д.

color

Значение для переменной, принимающей цвет, — это список цветов (не более двух, один для переднего плана и один для фона) и атрибутов (сколько угодно), разделённых пробелами.

Основные принимаемые цвета: normal, black, red, green, yellow, blue, magenta, cyan, white и default. Первый указанный цвет — передний план; второй — фон. У всех основных цветов, кроме normal и default, есть яркий вариант, который можно указать, добавив префикс bright, например brightred.

Цвет normal не изменяет цвет. Он эквивалентен пустой строке, но может использоваться в качестве цвета переднего плана при указании только фонового цвета (например, "normal red").

Цвет default явно сбрасывает цвет к стандартному для терминала, например, чтобы указать очищенный фон. Хотя это зависит от терминала, обычно это не то же самое, что установка "white black".

Цвета также могут быть заданы числами от 0 до 255; это использует режим ANSI 256-цветов (но учтите, что не все терминалы могут его поддерживать). Если ваш терминал поддерживает, вы также можете указать 24-битные значения RGB в шестнадцатеричном виде, например #ff0ab3, или 12-битные значения RGB вроде #f1b, что эквивалентно 24-битному цвету #ff11bb.

Принимаемые атрибуты: bold (жирный), dim (тусклый), ul (подчёркивание), blink (мигание), reverse (инверсия), italic (курсив) и strike (зачёркивание). Позиция атрибутов относительно цветов (до, после или между) не имеет значения. Конкретные атрибуты можно отключить, добавив префикс no или no- (например, noreverse, no-ul и т.д.).

Псевдоатрибут reset сбрасывает все цвета и атрибуты перед применением указанной раскраски. Например, reset green приведёт к зелёному переднему плану и стандартному фону без каких-либо активных атрибутов.

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

Для предопределённых цветовых слотов Git атрибуты должны сбрасываться в начале каждого элемента в цветном выводе. Поэтому установка color.decorate.branch в black окрасит имя ветки в простой black, даже если предыдущий элемент на той же строке вывода (например, открывающая скобка перед списком имён веток в выводе log --decorate) настроен на окраску с атрибутом bold или другим. Однако пользовательские форматы журнала могут использовать более сложную и слоистую раскраску, и там могут пригодиться отрицательные формы атрибутов.

pathname

Переменной, принимающей путь в качестве значения, можно передать строку, начинающуюся с "~/" или "~user/", и для такой строки выполняется обычное тильда-раскрытие: ~/ раскрывается в значение $HOME, а ~user/ — в домашний каталог указанного пользователя.

Если путь начинается с %(prefix)/, оставшаяся часть интерпретируется как путь, относительный к "префиксу времени выполнения" Git, т.е. относительно места, где установлен сам Git. Например, %(prefix)/bin/ ссылается на каталог, в котором находится исполняемый файл Git. Если Git был собран без поддержки префикса времени выполнения, будет подставлен встроенный префикс. В маловероятном случае, когда нужно указать буквальный путь, который не должен раскрываться, его нужно предварить ./, например: ./%(prefix)/bin.

Если путь предварен :(optional), конфигурационная переменная трактуется как несуществующая, если указанный путь не существует.

Переменные

Обратите внимание, что этот список не является исчерпывающим и не обязательно полным. Для переменных, специфичных для команд, вы найдёте более подробное описание в соответствующей странице руководства.

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

add.ignoreErrors
add.ignore-errors (устаревший)

Даёт указание git.add продолжить добавление файлов в ситуации, когда не удалось добавить некоторые файлы из-за ошибок индексирования. Эквивалентно параметру --ignore-errors git-add[1]. add.ignore-errors считается устаревшим (deprecated), так как он не следует устоявшимся конвенциям наименования переменных конфигурации.

Warning

Missing ru/config/advice.adoc

See original version for this content.

Warning

Missing ru/config/alias.adoc

See original version for this content.

Warning

Missing ru/config/am.adoc

See original version for this content.

Warning

Missing ru/config/apply.adoc

See original version for this content.

Warning

Missing ru/config/attr.adoc

See original version for this content.

Warning

Missing ru/config/bitmap-pseudo-merge.adoc

See original version for this content.

Warning

Missing ru/config/blame.adoc

See original version for this content.

branch.autoSetupMerge

Указывает git branch, git switch и git checkout настраивать новые ветки так, чтобы git-pull[1] соответствующим образом выполнял слияние из начальной ветки. Обратите внимание, что даже если этот параметр не установлен, это поведение можно выбрать для каждой ветки с помощью опций --track и --no-track. Этот параметр по умолчанию имеет значение true. Допустимые настройки:

false

автоматическая настройка не выполняется

true

автоматическая настройка выполняется, когда начальная точка является отслеживаемой внешней веткой

always

автоматическая настройка выполняется, когда начальная точка является либо локальной, либо отслеживаемой внешней веткой

inherit

если начальная точка имеет конфигурацию отслеживания, она копируется в новую ветку

simple

автоматическая настройка выполняется только в том случае, когда начальная точка является отслеживаемой внешней веткой и новая ветка имеет то же имя, что и внешняя ветка.

branch.autoSetupRebase

Когда создаётся новая ветка с помощью git branch, git switch или git checkout, которая отслеживает другую ветку, эта переменная указывает Git настроить извлечение (pull) на перемещение (rebase) вместо слияния (merge) (см. branch.<имя>.rebase). Допустимые настройки:

never

rebase никогда не устанавливается автоматически в true.

local

rebase устанавливается в true для отслеживаемых веток других локальных веток.

remote

rebase установлен в true для отслеживаемых веток из отслеживаемых внешних веток.

always

rebase будет установлен в true для всех отслеживаемых веток.

Подробности о настройке ветки для отслеживания другой ветки см. в branch.autoSetupMerge. Этот параметр по умолчанию имеет значение never.

branch.sort

Эта переменная управляет порядком сортировки веток при отображении git-branch[1]. Если не указана опция --sort=<значение>, значение этой переменной будет использоваться по умолчанию. Допустимые значения см. в названиях полей git-for-each-ref[1].

branch.<имя>.remote

Находясь в ветке <имя>, указывает git fetch и git push, из какого внешнего репозитория получать или в какой отправлять. Внешний репозиторий для отправки может быть переопределён с помощью remote.pushDefault (для всех веток). Внешний репозиторий для отправки для текущей ветки может быть дополнительно переопределён с помощью branch.<имя>.pushRemote. Если внешний репозиторий не настроен или если вы не находитесь ни в какой ветке и в репозитории определено более одного внешнего репозитория, по умолчанию для получения используется origin, а для отправки — remote.pushDefault. Кроме того, . (точка) — это текущий локальный репозиторий (dot-репозиторий); см. последнее примечание к branch.<имя>.merge ниже.

branch.<имя>.pushRemote

Находясь в ветке <имя>, переопределяет branch.<имя>.remote для отправки. Он также переопределяет remote.pushDefault для отправки из ветки <имя>. Когда вы извлекаете (pull) из одного места (например, вашего вышестоящего (upstream) репозитория) и отправляете в другое (например, в свой собственный публичный репозиторий), вы захотите установить remote.pushDefault, чтобы указать внешний репозиторий для отправки для всех веток, и использовать этот параметр, чтобы переопределить его для конкретной ветки.

branch.<имя>.merge

Определяет вместе с branch.<имя>.remote вышестоящую (upstream) ветку для данной ветки. Он сообщает git fetch/git pull/git rebase, какую ветку сливать (merge), и также может влиять на git push (см. push.default). Находясь в ветке <имя>, он сообщает git fetch спецификатор ссылки по умолчанию, который должен быть помечен для слияния в FETCH_HEAD. Значение обрабатывается как внешняя часть спецификатора ссылки и должно соответствовать ссылке, которая извлекается из внешнего репозитория, указанного в branch.<имя>.remote. Информация о слиянии используется git pull (который сначала вызывает git fetch) для поиска ветки по умолчанию для слияния. Без этой опции git pull по умолчанию сливает первый полученный спецификатор ссылки. Укажите несколько значений, чтобы получить слияние octopus. Если вы хотите настроить git pull так, чтобы он сливался в <имя> из другой ветки в локальном репозитории, вы можете указать branch.<имя>.merge на нужную ветку и использовать настройку относительного пути . (точка) для branch.<имя>.remote.

branch.<имя>.mergeOptions

Устанавливает параметры по умолчанию для слияния в ветку <имя>. Синтаксис и поддерживаемые параметры такие же, как в git-merge[1], но значения параметров, содержащие пробельные символы, в настоящее время не поддерживаются.

branch.<имя>.rebase

Если true, переместить (rebase) ветку <имя> поверх полученной ветки вместо слияния ветки по умолчанию из внешнего репозитория по умолчанию при выполнении git pull. См. pull.rebase для выполнения этого неспецифичным для ветки способом.

При значении merges (или просто m) передайте параметр --rebase-merges в git rebase, чтобы локальные коммиты слияния были включены в перемещение (см. подробности в git-rebase[1]).

Когда значение равно interactive (или просто i), перемещение выполняется в интерактивном режиме.

ПРИМЕЧАНИЕ: это потенциально опасная операция; не используйте её, если вы не понимаете последствий (подробности см. в git-rebase[1]).

branch.<имя>.description

Описание ветки, можно редактировать с помощью git branch --edit-description. Описание ветки автоматически добавляется в сопроводительное письмо format-patch или сводку request-pull.

Warning

Missing ru/config/browser.adoc

See original version for this content.

Warning

Missing ru/config/bundle.adoc

See original version for this content.

checkout.defaultRemote

Когда вы запускаете git checkout <что-то> или git switch <что-то> и у вас есть только один внешний репозиторий, он может неявно переключиться на отслеживание, например, origin/<что-то>. Это перестаёт работать, как только у вас появляется более одного внешнего репозитория со ссылкой <что-то>. Этот параметр позволяет задать имя предпочтительного внешнего репозитория, который всегда должен побеждать при разрешении неоднозначности. Типичный вариант использования — установить это значение в origin.

В настоящее время это используется git-switch[1] и git-checkout[1], когда git checkout <что-то> или git switch <что-то> будет переключаться на ветку <что-то> в другом внешнем репозитории, и git-worktree[1], когда git worktree add ссылается на внешнюю ветку. Этот параметр может использоваться для других команд или функций, подобных переключению (checkout), в будущем.

checkout.guess

Предоставляет значение по умолчанию для опции --guess или --no-guess в git checkout и git switch. См. git-switch[1] и git-checkout[1].

checkout.workers

Количество параллельных рабочих процессов, используемых при обновлении рабочего каталога. По умолчанию — один, т.е. последовательное выполнение. Если установлено значение меньше единицы, Git будет использовать столько рабочих процессов, сколько доступно логических ядер. Этот параметр и checkout.thresholdForParallelism влияют на все команды, выполняющие переключение (checkout). Например, checkout, clone, reset, sparse-checkout и т.д.

Note
Параллельное переключение обычно обеспечивает лучшую производительность для репозиториев, расположенных на SSD или через NFS. Для репозиториев на вращающихся дисках и/или машинах с небольшим количеством ядер, последовательное переключение по умолчанию часто работает лучше. Размер и уровень сжатия репозитория также могут влиять на то, насколько хорошо работает параллельная версия.
checkout.thresholdForParallelism

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

Warning

Missing ru/config/clean.adoc

See original version for this content.

clone.defaultRemoteName

Имя, которое будет использоваться для удалённого репозитория при его клонировании. По умолчанию: origin. Его можно переопределить, передав git-clone[1] параметр командной строки --origin.

clone.rejectShallow

Отказаться от клонирования репозитория, если он является частичным (shallow); это поведение можно переопределить, передав параметр командной строки --reject-shallow. См. git-clone[1].

clone.filterSubmodules

Если задан фильтр частичного клонирования (см. --filter в git-rev-list[1]) и используется --recurse-submodules, то применять фильтр также и к подмодулям.

Warning

Missing ru/config/color.adoc

See original version for this content.

Warning

Missing ru/config/column.adoc

See original version for this content.

commit.cleanup

Этот параметр переопределяет значение по умолчанию опции --cleanup в git commit. See git-commit[1] for details. Изменение значения по умолчанию может быть полезно, если вы всегда хотите оставлять строки, начинающиеся с символа комментария (core.commentChar, по умолчанию #), в вашем сообщении журнала, и в этом случае вы сделаете git config commit.cleanup whitespace (обратите внимание, что вам придётся самостоятельно удалять строки помощи, начинающиеся с символа комментария, в шаблоне сообщения коммита, если вы это сделаете).

commit.gpgSign

Логическое значение, указывающее, должны ли все коммиты подписываться с помощью GPG. Использование этого параметра при выполнении таких операций как перемещение на другую ветку (rebase), может привести к тому, что подпись потребуется сразу большому количеству коммитов. Так что дабы избежать необходимости вводить пароль GPG по несколько раз, может быть удобно использовать GPG-агент.

commit.status

Логическое значение, для включения/отключения вывода информации о состоянии в шаблоне сообщения коммита при использовании редактора для подготовки сообщения. По умолчанию: true.

commit.template

Указывает путь к файлу, который будет использоваться в качестве шаблона для новых сообщений коммитов.

commit.verbose

Логическое или целочисленное значение, задающее уровень подробностей, добавляемых git commit в шаблон сообщений коммитов. See git-commit[1] for details.

Warning

Missing ru/config/commitgraph.adoc

See original version for this content.

Warning

Missing ru/config/completion.adoc

See original version for this content.

Warning

Missing ru/config/core.adoc

See original version for this content.

Warning

Missing ru/config/credential.adoc

See original version for this content.

diff.autoRefreshIndex

При использовании git diff для сравнения с файлами в рабочем каталоге не учитывать изменения, касающиеся только stat-информации файлов. Вместо этого выполняется команда git update-index --refresh для обновления кэшированной stat-информации о путях, содержимое которых в рабочем каталоге совпадает с содержимым в индексе. Эта переменная по умолчанию установлена в значение true. Обратите внимание, что это влияет только на высокоуровневую команду git diff, но не на команды сравнения более низкого уровня, такие как git diff-files.

diff.dirstat

Список аргументов --dirstat, разделённых запятыми, которые определяют поведение по умолчанию параметра --dirstat команды git-diff[1] и других ей аналогичных. Аргументы по умолчанию можно переопределить в командной строке (с помощью --dirstat=<аргумент>,...). Аргументы по умолчанию (когда переменная diff.dirstat не изменена): changes,noncumulative,3. Допустимые аргументы:

changes

Подсчитывать количество строк, которые были удалены или добавлены. Этот алгоритм игнорирует чистые перемещения кода внутри файла. Другими словами, строки перемещённые внутри файла без изменений не учитываются в отличии от других правок. Это поведение по умолчанию, когда аргумент не указан.

lines

Подсчитывает количество строк с использованием обычного алгоритма поиска изменений, основываясь на строках и суммируя количество удалённых/добавленных строк. (Для бинарных файлов подсчитываются 64-байтовые блоки, так как у них нет естественного понятия «строк»). Это более затратный алгоритм работы --dirstat, чем changes, но он учитывает переставленные строки внутри файла так же, как и другие изменения. Вывод с этим алгоритмом лучше согласуется с теми данными, которые вы получаете от других параметров --*stat.

files

Подсчитывает количество изменённых файлов. При анализе каждый изменённый файл учитывается в равной степени. Это наиболее экономичный алгоритм --dirstat, так как он не требует просмотра содержимого файлов.

cumulative

Для родительского каталога также учитывает изменения в дочерних подкаталогах. Обратите внимание, что при использовании cumulative сумма процентов может превышать 100%. Поведение по умолчанию (некумулятивное) можно задать с помощью аргумента noncumulative.

<предел>

При использовании целочисленного значения в качестве аргумента, оно задаёт пороговое значение (по умолчанию 3%). Каталоги, изменения в которых составляют меньшую часть от общего числа изменений, чем указанный процент, не отображаются в выводе.

Пример: Следующая команда будет подсчитывать какую долю составляют файлы, которые были изменены в каждом конкретном каталоге, при этом игнорируя каталоги, на которые приходится менее 10% изменённых файлов и считая изменения в дочерних каталогов, как часть изменений в родительских: files,10,cumulative.

diff.statNameWidth

Ограничивает длину имени файла (или его части) в выводе --stat. Если установлено, применяется ко всем командам, генерирующим вывод --stat, кроме format-patch.

diff.statGraphWidth

Ограничивает длину «графической» части в выводе --stat. Если установлено, применяется ко всем командам, генерирующим вывод --stat, кроме format-patch.

diff.context

Генерировать списки изменений с <n> строками контекста вместо стандартных 3. Это значение переопределяется параметром -U.

diff.interHunkContext

Показывать до указанного количества строк в качестве контекста между отдельными блоками списков изменений, тем самым объединяя те блоки, которые находятся рядом друг с другом. Эта переменная задаёт значение по умолчанию для параметра командной строки --inter-hunk-context.

diff.external

Если эта переменная конфигурации установлена, то списки изменений создаются не с помощью внутренней реализации Git, а с помощью указанной команды. Эта команда может быть переопределена переменной окружения GIT_EXTERNAL_DIFF. Команда вызывается с параметрами, описанными в разделе «Утилита сравнения Git» в git[1]. Примечание: если вы хотите использовать стороннюю утилиту сравнения только для некоторого подмножества файлов, то вместо этой переменной вы, возможно, захотите использовать gitattributes[5].

diff.trustExitCode

Если это логическое значение установлено в true, то ожидается, что команда diff.external будет завершаться с кодом 0, если она считает переданные ей файлы равными, или 1, если разными, как это делает diff(1). Если оно установлено в false, что является значением по умолчанию, то ожидается, что эта команда будет завершаться с кодом 0 независимо от того, различаются ли файлы или нет. При завершении с любым другим кодом Git будет сообщать о фатальной ошибке.

diff.ignoreSubmodules

Устанавливает значение по умолчанию для --ignore-submodules. Обратите внимание, что это влияет только на высокоуровневую команду git diff, но не на команды сравнения более низкого уровня, такие как git diff-files. Команды git checkout и git switch также уважают значение этой переменной при выводе списка незафиксированных изменений. Установка этой переменной в значение all отключает вывод сводки изменений в подмодулях, которую обычно показывают git commit и git status, если переменная конфигурации status.submoduleSummary установлена, если конечно это значение не переопределено в командной строке с помощью --ignore-submodules. На подкоманды git submodule эта переменная не влияет. По умолчанию она установлена в значение untracked, дабы любые неотслеживаемые подмодули игнорировались.

diff.mnemonicPrefix

Если установлена, вместо стандартной пары префиксов a/ и b/ команда git diff будет использовать особую пару в зависимости от того, что сравнивается. Когда это включено, при выводе списка обратных изменений эти префиксы будут также идти в обратном порядке:

git diff

сравнивает индекс (i, index) и рабочую копию (w, work tree);

git diff HEAD

сравнивает коммит (c, commit) и рабочую копию (w, work tree);

git diff --cached

сравнивает коммит (c, commit) и индекс (i, index);

git diff HEAD:<файл1> <файл2>

сравнивает объект (o, object) и рабочую копию (w, work tree);

git diff --no-index <a> <b>

сравнивает две сущности не имеющие отношения к Git <a> и <b>.

diff.noPrefix

Если установлена, git diff не выводит никаких исходных или целевых префиксов.

diff.srcPrefix

Если установлена, git diff использует данное значение в качестве исходного префикса. По умолчанию: a/.

diff.dstPrefix

Если установлена, git diff использует данное значение в качестве целевого префикса. По умолчанию: b/.

diff.relative

Если установлена в true, git diff не показывает изменения вне текущего каталога и показывает пути относительно текущего каталога.

diff.orderFile

Файл, задающий в каком порядке должны идти файлы в списке изменений. См. подробности в описании параметра -O команды git-diff[1]. Если diff.orderFile является относительным путём, то он рассматривается как путь относительно корня рабочего каталога.

diff.renameLimit

Количество файлов, которые следует рассматривать, когда поиск копирований/переименований переходит в свою «исчерпывающую» стадию; эквивалентно параметру -l команды git diff. Если переменная не установлена, то на данный момент значение по умолчанию равно 1000. Эта переменная не имеет эффекта, если поиск переименований отключён.

diff.renames

Должен ли Git пытаться найти переименования файлов и если да, то как именно. При значении false, обнаружение переименований отключено. При значении true, включён базовый поиск переименований. При значении copies или copy, Git также ищет копии. Значение по умолчанию установлено в true. Обратите внимание, что это влияет только на высокоуровневую команду git-diff[1] и git-log[1], но не на команды сравнения более низкого уровня, такие как git-diff-files[1].

diff.suppressBlankEmpty

Логическое значение, указывающее, что не нужно выводить пробел на пустых строках (что является стандартным поведением). По умолчанию установлено в false.

diff.submodule

Указывает формат, в котором отображаются различия в подмодулях. В формате short выводятся только имена коммитов в начале и конце диапазона. В формате log перечисляются коммиты в диапазоне, как в summary в git-submodule[1] . Формат diff показывает встроенный список изменений содержимого подмодуля. Значение по умолчанию: short.

diff.wordRegex

Расширенное регулярное выражение POSIX, которое определяет, что является «словом», при построении пословного списка изменений. Последовательности символов, которые сопоставляются этому регулярному выражению, являются «cловами», все остальные символы считаются пробельными символами, которые могут быть проигнорированы.

diff.<драйвер>.command

Команда драйвера пользовательской утилиты сравнения. См. подробности в gitattributes[5].

diff.<драйвер>.trustExitCode

Если это логическое значение установлено в true, то ожидается, что команда diff.<драйвер>.command будет завершаться с кодом 0, если она считает переданные ей файлы равными, или 1, если разными, как это делает diff(1). Если оно установлено в false, что является значением по умолчанию, то ожидается, что эта команда будет завершаться с кодом 0 независимо от того, различаются ли файлы или нет. При завершении с любым другим кодом Git будет сообщать о фатальной ошибке.

diff.<драйвер>.xfuncname

Регулярное выражение, которое драйвер утилиты сравнения должен использовать для распознавания заголовка блока списка изменений. В качестве значения также может использоваться один из встроенных шаблонов. См. подробности в gitattributes[5].

diff.<драйвер>.binary

Установите эту переменную конфигурации в значение true, чтобы драйвер утилиты сравнения обрабатывал файлы как двоичные. См. подробности в gitattributes[5].

diff.<драйвер>.textconv

Команда, которую драйвер утилиты сравнения должен вызвать для генерации текстовой версии файла. Результат преобразования используется для создания списка изменений в виде удобоваримом для чтения человеком. См. подробности в gitattributes[5].

diff.<драйвер>.wordRegex

Регулярное выражение, которое драйвер утилиты сравнения должен использовать для разделения слов в строке. См. подробности в gitattributes[5].

diff.<драйвер>.cachetextconv

Установите эту переменную конфигурации в значение true, чтобы драйвер утилиты сравнения кэшировал результаты преобразования текста. См. подробности в gitattributes[5].

diff.indentHeuristic

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

diff.algorithm

Выберите алгоритм для получения списка изменений. Доступны следующие варианты:

default
myers

Базовый жадный алгоритм, используемый в стандартной утилите сравнения (diff). В настоящее время это значение по умолчанию.

minimal

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

patience

Используйте «терпеливый» алгоритм сравнения (patience diff) для генерации патчей.

histogram

Этот алгоритм расширяет «терпеливый» алгоритм так, что он «поддерживает общие элементы с низкой частотой встречаемости».

diff.wsErrorHighlight

Выделять цветом ошибки в пробелах в контекстных (context), старых (old) или новых (new) строках списков изменений. Допустимо несколько значений, разделённых запятыми; none сбрасывает предыдущие значения, default сбрасывает список до new, а all — это сокращение для old,new,context. Ошибки в пробельных символах будут выделяться с помощью color.diff.whitespace. Параметр командной строки --ws-error-highlight=<тип> переопределяет эту переменную конфигурации.

diff.colorMoved

Если в качестве значения этой переменной установлено допустимый <режим> или «true», перемещённые строки в списке изменений будут выделяться другим цветом. Подробности о допустимых режимах см. в описании параметра --color-moved команды git-diff[1]. Если в качестве значения установлено просто true, будет использован режим выделения по умолчанию. Если установлено false, перемещённые строки не выделяются.

diff.colorMovedWS

Когда перемещённые строки выделяются цветом, например при установке diff.colorMoved, эта переменная конфигурации задаёт режим, в котором должный обрабатываться пробелы. Подробности о допустимых режимов см. в описании параметра --color-moved-ws команды git-diff[1].

Warning

Missing ru/config/difftool.adoc

See original version for this content.

Warning

Missing ru/config/extensions.adoc

See original version for this content.

Warning

Missing ru/config/fastimport.adoc

See original version for this content.

Warning

Missing ru/config/feature.adoc

See original version for this content.

fetch.recurseSubmodules

Этот параметр управляет тем, будет ли git fetch (и базовое получение в git pull) рекурсивно получать данные в заполненные подмодули. Этот параметр может быть установлен либо в логическое значение, либо в on-demand. Установка в логическое значение изменяет поведение получения и извлечения на безусловную рекурсию в подмодули, если установлено true, или на отсутствие рекурсии вообще, если установлено false. При установке в on-demand получение и извлечение будут рекурсивно заходить в заполненный подмодуль только тогда, когда его суперпроект получает коммит, обновляющий ссылку подмодуля. По умолчанию on-demand или значение submodule.recurse, если оно установлено.

fetch.fsckObjects

Если установлено в true, git-fetch-pack будет проверять все полученные объекты. Что именно проверяется, см. в transfer.fsckObjects. По умолчанию false. Если не установлено, вместо этого используется значение transfer.fsckObjects.

fetch.fsck.<msg-id>

Действует как fsck.<msg-id>, но используется git-fetch-pack[1] вместо git-fsck[1]. Подробности см. в документации fsck.<msg-id>.

fetch.fsck.skipList

Действует как fsck.skipList, но используется git-fetch-pack[1] вместо git-fsck[1]. Подробности см. в документации fsck.skipList.

fetch.unpackLimit

Если количество объектов, полученных по собственному протоколу Git, ниже этого предела, объекты будут распакованы в непакованные (loose) файлы объектов. Однако если количество полученных объектов равно или превышает этот предел, полученный pack-файл будет сохранён как pack-файл после добавления любых недостающих баз дельт. Сохранение pack-файла из отправки может ускорить выполнение операции отправки, особенно на медленных файловых системах. Если не установлено, вместо этого используется значение transfer.unpackLimit.

fetch.prune

Если true, получение будет автоматически вести себя так, как если бы в командной строке была указана опция --prune. См. также remote.<имя>.prune и раздел ПОДЧИСТКА (PRUNING) в git-fetch[1].

fetch.pruneTags

Если true, получение будет автоматически вести себя так, как если бы спецификатор ссылки refs/tags/*:refs/tags/* был предоставлен при подчистке, если он ещё не установлен. Это позволяет установить как эту опцию, так и fetch.prune для поддержания сопоставления 1:1 с вышестоящими (upstream) ссылками. См. также remote.<имя>.pruneTags и раздел ПОДЧИСТКА (PRUNING) в git-fetch[1].

fetch.all

Если true, получение попытается обновить все доступные внешние репозитории. Это поведение можно переопределить, передав --no-all или явно указав один или несколько внешних репозиториев для получения. По умолчанию false.

fetch.output

Управляет тем, как печатается статус обновления ссылок. Допустимые значения: full и compact. Значение по умолчанию: full. Подробности см. в разделе OUTPUT в git-fetch[1].

fetch.negotiationAlgorithm

Управляет тем, как отправляется информация о коммитах в локальном репозитории при согласовании содержимого pack-файла, который будет отправлен сервером. Установите consecutive, чтобы использовать алгоритм, который проходит по последовательным коммитам, проверяя каждый. Установите skipping, чтобы использовать алгоритм, который пропускает коммиты в попытке сойтись быстрее, но может привести к созданию pack-файла большего, чем необходимо; или установите noop, чтобы вообще не отправлять никакую информацию, что почти наверняка приведёт к созданию pack-файла большего, чем необходимо, но пропустит этап согласования. Установите default, чтобы переопределить ранее сделанные настройки и использовать поведение по умолчанию. Обычно по умолчанию используется consecutive, но если feature.experimental равно true, то по умолчанию используется skipping. Неизвестные значения приведут к ошибке git fetch.

См. также опции --negotiate-only и --negotiation-tip в git-fetch[1].

fetch.showForcedUpdates

Установите в false, чтобы включить --no-show-forced-updates в командах git-fetch[1] и git-pull[1]. По умолчанию true.

fetch.parallel

Указывает максимальное количество операций получения, выполняемых параллельно за раз (подмодули или внешние репозитории, когда действует опция --multiple команды git-fetch[1]).

Значение 0 даст некоторое разумное значение по умолчанию. Если не установлено, по умолчанию используется 1.

Для подмодулей этот параметр можно переопределить с помощью настройки конфигурации submodule.fetchJobs.

fetch.writeCommitGraph

Установите true, чтобы записывать граф коммитов после каждой команды git fetch, которая загружает pack-файл из внешнего репозитория. При использовании опции --split большинство выполнений создадут очень маленький файл графа коммитов поверх существующего(их) файла(ов) графа коммитов. Иногда эти файлы будут сливаться, и запись может занять больше времени. Наличие обновлённого файла графа коммитов повышает производительность многих команд Git, включая git merge-base, git push -f и git log --graph. По умолчанию false.

fetch.bundleURI

Это значение хранит URI для загрузки данных объектов Git из bundle URI перед выполнением инкрементального получения с исходного Git-сервера. Это похоже на то, как ведёт себя опция --bundle-uri в git-clone[1]. git clone --bundle-uri установит значение fetch.bundleURI, если предоставленный bundle URI содержит список пакетов, организованный для инкрементальных получений.

Если вы изменяете это значение и в вашем репозитории есть значение fetch.bundleCreationToken, удалите это значение fetch.bundleCreationToken перед получением из нового bundle URI.

fetch.bundleCreationToken

При использовании fetch.bundleURI для инкрементального получения из списка пакетов, использующего эвристику «creationToken», это значение конфигурации хранит максимальное значение creationToken загруженных пакетов. Это значение используется для предотвращения загрузки пакетов в будущем, если объявленный creationToken не строго больше этого значения.

Значения токенов создания выбираются поставщиком, обслуживающим конкретный bundle URI. Если вы изменяете URI в fetch.bundleURI, обязательно удалите значение fetch.bundleCreationToken перед получением.

Warning

Missing ru/config/filter.adoc

See original version for this content.

Warning

Missing ru/config/format.adoc

See original version for this content.

Warning

Missing ru/config/fsck.adoc

See original version for this content.

Warning

Missing ru/config/fsmonitor--daemon.adoc

See original version for this content.

Warning

Missing ru/config/gc.adoc

See original version for this content.

Warning

Missing ru/config/gitcvs.adoc

See original version for this content.

Warning

Missing ru/config/gitweb.adoc

See original version for this content.

Warning

Missing ru/config/gpg.adoc

See original version for this content.

Warning

Missing ru/config/grep.adoc

See original version for this content.

Warning

Missing ru/config/gui.adoc

See original version for this content.

Warning

Missing ru/config/guitool.adoc

See original version for this content.

Warning

Missing ru/config/help.adoc

See original version for this content.

Warning

Missing ru/config/http.adoc

See original version for this content.

Warning

Missing ru/config/i18n.adoc

See original version for this content.

Warning

Missing ru/config/imap.adoc

See original version for this content.

Warning

Missing ru/config/includeif.adoc

See original version for this content.

Warning

Missing ru/config/index.adoc

See original version for this content.

init.templateDir

Задаёт каталог, из которого будут копироваться шаблоны. (See the "TEMPLATE DIRECTORY" section of git-init[1].)

init.defaultBranch

Позволяет переопределить имя ветки по умолчанию, которое, например, используется при инициализации нового репозитория.

init.defaultObjectFormat

Позволяет переопределить формат объектов по умолчанию для новых репозиториев. См. --object-format= в git-init[1]. Как этот параметр командной строки, так и переменная среды GIT_DEFAULT_HASH являются более приоритетными, чем данная переменная конфигурации.

init.defaultRefFormat

Позволяет переопределить формат хранения ссылок по умолчанию для новых репозиториев. См. --ref-format= в git-init[1]. Как этот параметр командной строки, так и переменная среды GIT_DEFAULT_REF_FORMAT являются более приоритетными, чем данная переменная конфигурации.

init.defaultSubmodulePathConfig

Логическое значение, указывающее, должны ли git init и git clone автоматически устанавливать extensions.submodulePathConfig в true. Это позволяет всем новым репозиториям автоматически использовать расширение пути подмодуля. По умолчанию, если не задано, равно false.

Warning

Missing ru/config/instaweb.adoc

See original version for this content.

Warning

Missing ru/config/interactive.adoc

See original version for this content.

log.abbrevCommit

Если true, заставить git-log[1], git-show[1] и git-whatchanged[1] подразумевать --abbrev-commit. Вы можете переопределить эту опцию с помощью --no-abbrev-commit.

log.date

Установить режим даты-времени по умолчанию для команды log. Установка значения для log.date аналогична использованию опции --date в git log. Подробности см. в git-log[1].

Если для формата установлено значение "auto:foo" и используется пейджер, для формата даты будет использоваться формат "foo". В противном случае будет использоваться "default".

log.decorate

Выводить имена ссылок любых коммитов, показываемых командой log. Возможные значения:

short

префиксы имён ссылок refs/heads/, refs/tags/ и refs/remotes/ не выводятся.

full

выводится полное имя ссылки (включая префикс).

auto

если вывод направляется в терминал, имена ссылок показываются так, как если бы было указано short; в противном случае имена ссылок не показываются.

Это то же самое, что и параметр --decorate в git log.

log.initialDecorationSet

По умолчанию git log показывает оформление только для определённых известных пространств имён ссылок. Если указано all, то показывать все ссылки как оформление.

log.excludeDecoration

Исключить указанные шаблоны из украшений журнала. Это похоже на опцию командной строки --decorate-refs-exclude, но опция конфигурации может быть переопределена опцией --decorate-refs.

log.diffMerges

Устанавливает формат сравнения, используемый при указании --diff-merges=on; подробности см. в --diff-merges в git-log[1]. По умолчанию separate.

log.follow

Если true, git log будет вести себя так, как если бы была использована опция --follow, когда указан один <путь>. Это имеет те же ограничения, что и --follow, т.е. его нельзя использовать для отслеживания нескольких файлов, и он плохо работает с нелинейной историей.

log.graphColors

Список цветов, разделённых запятыми, которые можно использовать для рисования линий истории в git log --graph.

log.showRoot

Если true, начальный коммит будет показан как большое событие создания. Это эквивалентно сравнению с пустым деревом. Инструменты, такие как git-log[1] или git-whatchanged[1], которые обычно скрывают корневой коммит, теперь будут его показывать. По умолчанию true.

log.showSignature

Если true, заставляет git-log[1], git-show[1] и git-whatchanged[1] подразумевать --show-signature.

log.mailmap

Если true, заставляет git-log[1], git-show[1] и git-whatchanged[1] подразумевать --use-mailmap, в противном случае подразумевать --no-use-mailmap. По умолчанию true.

Warning

Missing ru/config/lsrefs.adoc

See original version for this content.

Warning

Missing ru/config/mailinfo.adoc

See original version for this content.

Warning

Missing ru/config/mailmap.adoc

See original version for this content.

Warning

Missing ru/config/maintenance.adoc

See original version for this content.

Warning

Missing ru/config/man.adoc

See original version for this content.

merge.conflictStyle

Определяет стиль, в котором конфликтные блоки записываются в файлы рабочего дерева при слиянии. По умолчанию используется «merge», который показывает маркер конфликта <<<<<<<, изменения одной стороны, маркер =======, изменения другой стороны и затем маркер >>>>>>>. Альтернативный стиль «diff3» добавляет маркер ||||||| и исходный текст перед маркером =======. Стиль «merge» обычно создаёт меньшие области конфликта, чем «diff3», как из-за исключения исходного текста, так и потому, что когда подмножество строк совпадает с обеих сторон, они просто выносятся из области конфликта. Ещё один альтернативный стиль, «zdiff3», похож на «diff3», но удаляет совпадающие строки с обеих сторон из области конфликта, когда эти совпадающие строки появляются ближе к началу или концу области конфликта.

merge.defaultToUpstream

Если merge вызывается без аргумента коммита, выполняется слияние вышестоящих веток, настроенных для текущей ветки, с использованием их последних наблюдаемых значений, сохранённых в их удалённых отслеживающих ветках. Используются значения branch.<текущая ветка>.merge, которые называют ветки в удалённом репозитории, указанном в branch.<текущая ветка>.remote, а затем они отображаются через remote.<удалённый>.fetch в соответствующие удалённые отслеживающие ветки, и концы этих отслеживающих веток сливаются. По умолчанию true.

merge.ff

По умолчанию Git не создаёт дополнительный коммит слияния при слиянии коммита, являющегося потомком текущего коммита. Вместо этого конец текущей ветки перемещается вперёд (fast-forward). При установке в false эта переменная указывает Git создать дополнительный коммит слияния в таком случае (эквивалентно передаче опции --no-ff из командной строки). При установке в only разрешены только такие быстрые слияния (эквивалентно передаче параметра --ff-only из командной строки).

merge.verifySignatures

Если true, это эквивалентно опции командной строки --verify-signatures. Подробности см. в git-merge[1].

merge.branchdesc

Помимо имён веток, заполнять сообщение журнала текстом описания веток, связанных с ними. По умолчанию false.

merge.log

Помимо имён веток, заполнять сообщение журнала не более чем указанным количеством однострочных описаний из фактических коммитов, которые сливаются. По умолчанию false, а true является синонимом 20.

merge.suppressDest

Добавляя glob, соответствующий именам веток интеграции, в эту многозначную конфигурационную переменную, стандартное сообщение о слиянии, вычисляемое для слияний в эти ветки интеграции, будет опускать "into <имя-ветки>" из своего заголовка.

Элемент с пустым значением можно использовать для очистки списка glob-ов, накопленных из предыдущих записей конфигурации. Когда переменная merge.suppressDest не определена, для обратной совместимости используется значение по умолчанию master.

merge.renameLimit

Количество файлов для рассмотрения в исчерпывающей части обнаружения переименований во время слияния. Если не указано, по умолчанию используется значение diff.renameLimit. Если не указаны ни merge.renameLimit, ни diff.renameLimit, в настоящее время по умолчанию используется 7000. Этот параметр не действует, если обнаружение переименований отключено.

merge.renames

Должен ли Git находить переименования. При значении false обнаружение переименований отключено. При значении true включено базовое обнаружение переименований. По умолчанию используется значение diff.renames.

merge.directoryRenames

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

false

Обнаружение переименований каталогов отключено, что означает, что такие новые файлы останутся в старом каталоге.

true

Обнаружение переименований каталогов включено, что означает, что такие новые файлы будут перемещены в новый каталог.

conflict

Для таких путей будет сообщён конфликт.

Если merge.renames равно false, merge.directoryRenames игнорируется и трактуется как false. По умолчанию conflict.

merge.renormalize

Сообщает Git, что каноническое представление файлов в репозитории со временем изменилось (например, ранние коммиты записывают текстовые файлы с окончаниями строк CRLF, а более поздние используют LF). В таком репозитории для каждого файла, требующего трёхстороннего слияния содержимого, Git может преобразовать данные, записанные в коммитах, в каноническую форму перед выполнением слияния, чтобы уменьшить количество ненужных конфликтов. Для получения дополнительной информации см. раздел «Слияние веток с различными атрибутами checkin/checkout» в gitattributes[5].

merge.stat

Определяет, что печатать (если вообще что-либо) между ORIG_HEAD и результатом слияния в конце процесса слияния. Возможные значения:

false

Ничего не показывать.

true

Показать git diff --diffstat --summary ORIG_HEAD.

compact

Показать git diff --compact-summary ORIG_HEAD.

но любое нераспознанное значение (например, добавленное будущей версией Git) трактуется как true, а не вызывает ошибку. По умолчанию true.

merge.autoStash

При значении true автоматически создаёт временную запись stash перед началом операции и применяет её после завершения операции. Это позволяет выполнять слияние на грязном рабочем дереве. Однако используйте с осторожностью: финальное применение stash после успешного слияния может привести к непростым конфликтам. Эту опцию можно переопределить с помощью опций --no-autostash и --autostash команды git-merge[1]. По умолчанию false.

merge.tool

Управляет тем, какой инструмент слияния используется git-mergetool[1]. Список ниже показывает допустимые встроенные значения. Любое другое значение трактуется как пользовательский инструмент слияния и требует определения соответствующей переменной mergetool.<инструмент>.cmd.

merge.guitool

Управляет тем, какой инструмент слияния используется git-mergetool[1] при указании флага -g/--gui. Список ниже показывает допустимые встроенные значения. Любое другое значение трактуется как пользовательский инструмент слияния и требует определения соответствующей переменной mergetool.<guitool>.cmd.

Warning

Missing ru/config/{build_dir}/mergetools-merge.adoc

See original version for this content.

merge.verbosity

Управляет объёмом вывода, показываемого рекурсивной стратегией слияния. Уровень 0 не выводит ничего, кроме финального сообщения об ошибке, если обнаружены конфликты. Уровень 1 выводит только конфликты, 2 — конфликты и изменения файлов. Уровень 5 и выше выводит отладочную информацию. По умолчанию используется уровень 2. Может быть переопределено переменной окружения GIT_MERGE_VERBOSITY.

merge.<драйвер>.name

Определяет человекопонятное имя для пользовательского низкоуровневого драйвера слияния. Подробности см. в gitattributes[5].

merge.<драйвер>.driver

Определяет команду, реализующую пользовательский низкоуровневый драйвер слияния. Подробности см. в gitattributes[5].

merge.<драйвер>.recursive

Указывает низкоуровневый драйвер слияния, который будет использоваться при выполнении внутреннего слияния между общими предками. Подробности см. в gitattributes[5].

mergetool.<инструмент>.path

Переопределить путь для указанного инструмента. Это полезно, если ваш инструмент не находится в $PATH.

mergetool.<инструмент>.cmd

Указывает команду для вызова указанного инструмента слияния. Указанная команда выполняется в оболочке со следующими доступными переменными: BASE — имя временного файла, содержащего общую базу файлов для слияния, если доступно; LOCAL — имя временного файла, содержащего содержимое файла в текущей ветке; REMOTE — имя временного файла, содержащего содержимое файла из ветки, с которой выполняется слияние; MERGED содержит имя файла, в который инструмент слияния должен записать результаты успешного слияния.

mergetool.<инструмент>.hideResolved

Позволяет пользователю переопределить глобальное значение mergetool.hideResolved для конкретного инструмента. Полное описание см. в mergetool.hideResolved.

mergetool.<инструмент>.trustExitCode

Для пользовательской команды слияния укажите, можно ли использовать код завершения команды слияния для определения успешности слияния. Если это не установлено в true, проверяется временная метка целевого файла слияния, и предполагается, что слияние прошло успешно, если файл был обновлён; в противном случае пользователю предлагается указать успешность слияния.

mergetool.meld.hasOutput

Старые версии meld не поддерживают опцию --output. Git попытается определить, поддерживает ли meld --output, проверив вывод meld --help. Настройка mergetool.meld.hasOutput заставит Git пропустить эти проверки и вместо этого использовать настроенное значение. Установка mergetool.meld.hasOutput в true указывает Git безоговорочно использовать опцию --output, а false избегает использования --output.

mergetool.meld.useAutoMerge

Когда указан --auto-merge, meld автоматически сливает все неконфликтующие части, выделяет конфликтующие части и ожидает решения пользователя. Установка mergetool.meld.useAutoMerge в true указывает Git безоговорочно использовать опцию --auto-merge с meld. Установка этого значения в auto заставляет git определять, поддерживается ли --auto-merge, и использовать --auto-merge только когда доступно. Значение false полностью избегает использования --auto-merge и является значением по умолчанию.

mergetool.<вариант>.layout

Настроить макет разделённого окна для <варианта> vimdiff, который может быть vimdiff, nvimdiff, gvimdiff. При запуске git mergetool с --tool=<вариант> (или без --tool, если merge.tool настроен как <вариант>), Git обратится к mergetool.<вариант>.layout, чтобы определить макет инструмента. Если конфигурация, специфичная для варианта, недоступна, используется макет vimdiff в качестве запасного варианта. Если и он недоступен, будет использоваться макет по умолчанию с 4 окнами. Чтобы настроить макет, см. «ПОДСКАЗКИ ПО ВНУТРЕННИМ МЕХАНИЗМАМ» раздел в git-mergetool[1].

mergetool.hideResolved

Во время слияния Git автоматически разрешает как можно больше конфликтов и записывает файл $MERGED, содержащий маркеры конфликтов вокруг любых конфликтов, которые он не может разрешить; $LOCAL и $REMOTE обычно являются версиями файла до разрешения конфликтов Git. Этот флаг приводит к перезаписи $LOCAL и $REMOTE, так что инструменту слияния представляются только неразрешённые конфликты. Может быть настроен для каждого инструмента через переменную конфигурации mergetool.<инструмент>.hideResolved. По умолчанию false.

mergetool.keepBackup

После выполнения слияния исходный файл с маркерами конфликтов может быть сохранён как файл с расширением .orig. Если эта переменная установлена в false, этот файл не сохраняется. По умолчанию true (т.е. сохранять резервные копии).

mergetool.keepTemporaries

При вызове пользовательского инструмента слияния Git использует набор временных файлов для передачи инструменту. Если инструмент возвращает ошибку и эта переменная установлена в true, эти временные файлы будут сохранены; в противном случае они будут удалены после завершения работы инструмента. По умолчанию false.

mergetool.writeToTemp

По умолчанию Git записывает временные версии BASE, LOCAL и REMOTE конфликтующих файлов в рабочем каталоге. При установке true Git попытается использовать для этих файлов временный каталог. По умолчанию false.

mergetool.prompt

Запрашивать подтверждение перед каждым вызовом программы разрешения слияния.

mergetool.guiDefault

Установите true, чтобы использовать merge.guitool по умолчанию (эквивалентно указанию аргумента --gui), или auto, чтобы выбирать merge.guitool или merge.tool в зависимости от наличия значения переменной среды DISPLAY. По умолчанию false, когда аргумент --gui должен быть предоставлен явно для использования merge.guitool.

notes.mergeStrategy

Какую стратегию слияния выбирать по умолчанию при разрешении конфликтов заметок. Должна быть одной из manual, ours, theirs, union или cat_sort_uniq. По умолчанию manual. Дополнительную информацию о каждой стратегии см. в разделе «СТРАТЕГИИ СЛИЯНИЯ ЗАМЕТОК» в git-notes[1].

Этот параметр можно переопределить, передав опцию --strategy в git-notes[1].

notes.<имя>.mergeStrategy

Какую стратегию слияния выбрать при выполнении слияния заметок в refs/notes/<имя>. Это переопределяет более общую notes.mergeStrategy. Дополнительную информацию о доступных стратегиях см. в разделе «СТРАТЕГИИ СЛИЯНИЯ ЗАМЕТОК» в git-notes[1].

notes.displayRef

Какая ссылка (или ссылки, если это glob-шаблон или указано более одного раза), в дополнение к умолчанию, заданному core.notesRef или GIT_NOTES_REF, должна использоваться для чтения заметок при показе сообщений коммитов с помощью семейства команд git log.

Этот параметр можно переопределить с помощью переменной среды GIT_NOTES_DISPLAY_REF, которая должна представлять собой разделённый двоеточиями список ссылок или glob-шаблонов.

Для несуществующих ссылок будет выдано предупреждение, но glob-шаблон, не соответствующий ни одной ссылке, будет молча проигнорирован.

Этот параметр можно отключить с помощью опции --no-notes для семейства команд git-log[1] или с помощью опции --notes=<ссылка>, принимаемой этими командами.

Эффективное значение core.notesRef (возможно, переопределённое GIT_NOTES_REF) также неявно добавляется в список отображаемых ссылок.

notes.rewrite.<команда>

При перезаписи коммитов с помощью <команда> (в настоящее время amend или rebase), если эта переменная имеет значение false, git не будет копировать заметки из исходного коммита в перезаписанный. По умолчанию true. См. также notes.rewriteRef ниже.

Этот параметр можно переопределить с помощью переменной среды GIT_NOTES_REWRITE_REF, которая должна представлять собой разделённый двоеточиями список ссылок или glob-шаблонов.

notes.rewriteMode

При копировании заметок во время перезаписи (см. параметр notes.rewrite.<команда>) определяет, что делать, если у целевого коммита уже есть заметка. Должно быть одним из overwrite, concatenate, cat_sort_uniq или ignore. По умолчанию concatenate.

Этот параметр можно переопределить с помощью переменной окружения GIT_NOTES_REWRITE_MODE.

notes.rewriteRef

При копировании заметок во время перезаписи указывает (полностью квалифицированную) ссылку, чьи заметки следует копировать. Может быть glob-шаблоном, и в этом случае заметки во всех соответствующих ссылках будут скопированы. Вы также можете указать эту конфигурацию несколько раз.

Не имеет значения по умолчанию; вы должны настроить эту переменную, чтобы включить перезапись заметок. Установите её в refs/notes/commits, чтобы включить перезапись для заметок коммитов по умолчанию.

Может быть переопределена с помощью переменной среды GIT_NOTES_REWRITE_REF. См. notes.rewrite.<команда> выше для дальнейшего описания её формата.

Warning

Missing ru/config/pack.adoc

See original version for this content.

Warning

Missing ru/config/pager.adoc

See original version for this content.

Warning

Missing ru/config/pretty.adoc

See original version for this content.

Warning

Missing ru/config/promisor.adoc

See original version for this content.

Warning

Missing ru/config/protocol.adoc

See original version for this content.

Warning

Missing ru/config/pull.adoc

See original version for this content.

push.autoSetupRemote

Если установлено в true, подразумевать --set-upstream при отправке по умолчанию, когда для текущей ветки не существует вышестоящего (upstream) отслеживания; этот параметр действует с опциями push.default simple, upstream и current. Это полезно, если по умолчанию вы хотите, чтобы новые ветки отправлялись во внешний репозиторий по умолчанию (как поведение push.default=current) и вы также хотите, чтобы было установлено вышестоящее отслеживание. Наиболее вероятные рабочие процессы, которые выиграют от этого параметра, — это simple централизованные рабочие процессы, где ожидается, что все ветки будут иметь одинаковые имена во внешнем репозитории.

push.default

Определяет действие, которое должно выполняться git push, если не указан спецификатор ссылки (будь то из командной строки, конфигурации или другого места). Разные значения хорошо подходят для конкретных рабочих процессов; например, в чисто централизованном рабочем процессе (т.е. источник получения равен цели отправки), upstream, вероятно, то, что вам нужно. Возможные значения:

nothing

не отправлять ничего (завершиться с ошибкой), если не указан спецификатор ссылки. Это в первую очередь предназначено для людей, которые хотят избежать ошибок, всегда действуя явно.

current

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

upstream

отправить текущую ветку обратно в ветку, чьи изменения обычно интегрируются в текущую ветку (которая называется @{upstream}). Этот режим имеет смысл только в том случае, если вы отправляете в тот же репозиторий, из которого обычно извлекаете (pull) (т.е. централизованный рабочий процесс).

tracking

это устаревший синоним для upstream.

simple

отправить текущую ветку с тем же именем во внешний репозиторий.

Если вы работаете по централизованному рабочему процессу (отправляете в тот же репозиторий, из которого извлекаете, обычно это origin), то вам нужно настроить вышестоящую ветку с тем же именем.

Этот режим используется по умолчанию, начиная с Git 2.0, и является самым безопасным вариантом, подходящим для новичков.

matching

отправить все ветки, имеющие одинаковые имена на обоих концах. Это заставляет репозиторий, в который вы отправляете, запомнить набор веток, которые будут отправлены (например, если вы всегда отправляете туда maint и master и никакие другие ветки, репозиторий, в который вы отправляете, будет иметь эти две ветки, и ваши локальные maint и master будут туда отправлены).

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

Раньше это было значение по умолчанию, но не начиная с Git 2.0 (simple — новое значение по умолчанию).

push.followTags

Если установлено в true, включить опцию --follow-tags по умолчанию. Вы можете переопределить эту конфигурацию во время отправки, указав --no-follow-tags.

push.gpgSign

Может быть установлен в логическое значение или в строку if-asked. Значение true заставляет все отправки подписываться с помощью GPG, как если бы --signed был передан в git-push[1]. Строка if-asked заставляет отправки подписываться, если сервер это поддерживает, как если бы --signed=if-asked был передан в git push. Значение false может переопределить значение из конфигурационного файла с более низким приоритетом. Явный флаг командной строки всегда переопределяет этот параметр конфигурации.

push.pushOption

Если аргумент --push-option=<параметр> не задан в командной строке, git push ведёт себя так, как если бы каждый <параметр> этой переменной был задан как --push-option=<параметр>.

Это многозначная переменная, и пустое значение может быть использовано в конфигурационном файле с более высоким приоритетом (например, .git/config в репозитории) для очистки значений, унаследованных из конфигурационных файлов с более низким приоритетом (например, $HOME/.gitconfig).

Пример:

/etc/gitconfig
  push.pushoption = a
  push.pushoption = b

~/.gitconfig
  push.pushoption = c

repo/.git/config
  push.pushoption =
  push.pushoption = b

В результате останется только b (a и c будут очищены).
push.recurseSubmodules

Может быть check, on-demand, only или no, с тем же поведением, что и у push --recurse-submodules. Если не установлено, по умолчанию используется no, если только не установлен submodule.recurse (в этом случае значение true означает on-demand).

push.useForceIfIncludes

Если установлено в true, это эквивалентно указанию --force-if-includes в качестве параметра для git-push[1] в командной строке. Добавление --no-force-if-includes во время отправки переопределяет этот параметр конфигурации.

push.negotiate

Если установлено в true, пытаться уменьшить размер отправляемого pack-файла с помощью раундов согласования, в которых клиент и сервер пытаются найти общие коммиты. Если false, Git будет полагаться исключительно на объявление ссылок сервера для поиска общих коммитов.

push.useBitmaps

Если установлено в false, отключить использование битовых карт для git push, даже если pack.useBitmaps имеет значение true, не препятствуя использованию битовых карт другими операциями git. По умолчанию true.

rebase.backend

Внутренний механизм по умолчанию для перемещения (rebase). Возможные варианты: apply или merge. В будущем, если внутренний механизм слияния (merge backend) получит все оставшиеся возможности внутреннего механизма наложения (apply backend), этот параметр может перестать использоваться.

rebase.stat

Показывать ли diffstat того, что изменилось выше по течению (upstream) с момента последнего перемещения. По умолчанию false.

rebase.autoSquash

Если установлено в true, включить параметр --autosquash команды git-rebase[1] по умолчанию для интерактивного режима. Это можно переопределить с помощью параметра --no-autosquash.

rebase.autoStash

Если установлено в true, автоматически создаёт временную запись в тайнике (stash) перед началом операции и применяет её после завершения операции. Это означает, что вы можете выполнять перемещение на грязном рабочем каталоге. Однако используйте с осторожностью: финальное применение тайника после успешного перемещения может привести к нетривиальным конфликтам. Этот параметр может быть переопределён параметрами --no-autostash и --autostash команды git-rebase[1]. По умолчанию false.

rebase.updateRefs

Если установлено в true, включить параметр --update-refs по умолчанию.

rebase.missingCommitsCheck

Если установлено в «warn», git rebase -i выведет предупреждение, если некоторые коммиты удалены (например, строка была удалена), однако перемещение всё равно продолжится. Если установлено в «error», он выведет предыдущее предупреждение и остановит перемещение; затем можно использовать git rebase --edit-todo для исправления ошибки. Если установлено в «ignore», никакая проверка не выполняется. Чтобы отбросить коммит без предупреждения или ошибки, используйте команду drop в списке задач. По умолчанию «ignore».

rebase.instructionFormat

Строка формата, как указано в git-log[1], используемая для списка задач во время интерактивного перемещения. К формату автоматически будет добавлен хеш коммита в начале.

rebase.abbreviateCommands

Если установлено в true, git rebase будет использовать сокращённые имена команд в списке задач, что приведёт к чему-то вроде этого:

	p deadbee Однострочное описание коммита
	p fa1afe1 Однострочное описание следующего коммита
	...

вместо:

	pick deadbee Однострочное описание коммита
	pick fa1afe1 Однострочное описание следующего коммита
	...

По умолчанию false.

rebase.rescheduleFailedExec

Автоматически перепланировать команды exec, которые завершились сбоем. Это имеет смысл только в интерактивном режиме (или когда была предоставлена опция --exec). Это то же самое, что и указание опции --reschedule-failed-exec.

rebase.forkPoint

Если установлено в false, установить опцию --no-fork-point по умолчанию.

rebase.rebaseMerges

Следует ли и как устанавливать опцию --rebase-merges по умолчанию. Может быть rebase-cousins, no-rebase-cousins или логическим значением. Установка в true или в no-rebase-cousins эквивалентна --rebase-merges=no-rebase-cousins, установка в rebase-cousins эквивалентна --rebase-merges=rebase-cousins, а установка в false эквивалентна --no-rebase-merges. Передача --rebase-merges в командной строке, с аргументом или без, переопределяет любую конфигурацию rebase.rebaseMerges.

rebase.maxLabelLength

При создании имён меток из тем коммитов усекать имена до этой длины. По умолчанию имена усекаются до значения немного меньшего, чем NAME_MAX (чтобы разрешить, например, запись файлов .lock для соответствующих непакованных (loose) ссылок).

Warning

Missing ru/config/receive.adoc

See original version for this content.

Warning

Missing ru/config/reftable.adoc

See original version for this content.

Warning

Missing ru/config/remote.adoc

See original version for this content.

Warning

Missing ru/config/remotes.adoc

See original version for this content.

Warning

Missing ru/config/repack.adoc

See original version for this content.

Warning

Missing ru/config/rerere.adoc

See original version for this content.

Warning

Missing ru/config/revert.adoc

See original version for this content.

Warning

Missing ru/config/safe.adoc

See original version for this content.

Warning

Missing ru/config/sendemail.adoc

See original version for this content.

sequence.editor

Текстовый редактор, используемый git rebase -i для редактирования файла инструкций перемещения. Значение должно интерпретироваться оболочкой при его использовании. Может быть переопределено переменной среды GIT_SEQUENCE_EDITOR. Если не настроено, вместо него используется редактор сообщений коммитов по умолчанию.

Warning

Missing ru/config/showbranch.adoc

See original version for this content.

Warning

Missing ru/config/sparse.adoc

See original version for this content.

Warning

Missing ru/config/splitindex.adoc

See original version for this content.

Warning

Missing ru/config/ssh.adoc

See original version for this content.

stash.index

Если установлено в true, git stash apply и git stash pop будут вести себя так, как будто был указан --index. По умолчанию false. См. описания в git-stash[1].

Это также влияет на вызовы git-stash[1] через --autostash из таких команд, как git-merge[1], git-rebase[1] и git-pull[1].

stash.showIncludeUntracked

Если установлено в true, команда git stash show будет показывать неотслеживаемые файлы записи в тайнике (stash). По умолчанию false. See the description of the 'show' command in git-stash[1].

stash.showPatch

Если установлено в true, команда git stash show без параметра будет показывать запись в тайнике (stash) в форме изменения (патча). По умолчанию false. See the description of the 'show' command in git-stash[1].

stash.showStat

Если установлено в true, команда git stash show без параметра будет показывать diffstat записи в тайнике (stash). По умолчанию true. See the description of the 'show' command in git-stash[1].

Warning

Missing ru/config/status.adoc

See original version for this content.

Warning

Missing ru/config/submodule.adoc

See original version for this content.

tag.forceSignAnnotated

Логическое значение, указывающее, должны ли создаваемые аннотированные метки подписываться с помощью GPG. Если в командной строке указан --annotate, он имеет приоритет над этой опцией.

tag.sort

Эта переменная управляет порядком сортировки меток при отображении git-tag[1]. Если не указана опция --sort=<значение>, значение этой переменной будет использоваться по умолчанию.

tag.gpgSign

Логическое значение, указывающее, должны ли все метки подписываться с помощью GPG. Использование этой опции при выполнении в автоматизированном скрипте может привести к подписанию большого количества меток. Поэтому удобно использовать агент, чтобы избежать многократного ввода вашей GPG-фразы. Обратите внимание, что эта опция не влияет на поведение подписания меток, включённое опциями -u <id-ключа> или --local-user=<id-ключа>.

Warning

Missing ru/config/tar.adoc

See original version for this content.

Warning

Missing ru/config/trace2.adoc

See original version for this content.

Warning

Missing ru/config/trailer.adoc

See original version for this content.

Warning

Missing ru/config/transfer.adoc

See original version for this content.

Warning

Missing ru/config/uploadarchive.adoc

See original version for this content.

Warning

Missing ru/config/uploadpack.adoc

See original version for this content.

Warning

Missing ru/config/url.adoc

See original version for this content.

Warning

Missing ru/config/user.adoc

See original version for this content.

Warning

Missing ru/config/versionsort.adoc

See original version for this content.

Warning

Missing ru/config/web.adoc

See original version for this content.

worktree.guessRemote

Если ветка не указана и не используются ни -b, ни -B, ни --detach, то git worktree add по умолчанию создаёт новую ветку из HEAD. Если worktree.guessRemote установлено в true, worktree add пытается найти отслеживаемую внешнюю ветку, имя которой однозначно соответствует имени новой ветки. Если такая ветка существует, она переключается (checkout) и устанавливается как «вышестоящая» (upstream) для новой ветки. Если такого соответствия найти не удаётся, возвращается к созданию новой ветки из текущего HEAD.

worktree.useRelativePaths

Связывать рабочие копии (worktrees), используя относительные пути (когда «true») или абсолютные пути (когда «false»). Это особенно полезно для конфигураций, где репозиторий и рабочие копии могут перемещаться между разными местами или средами. По умолчанию «false».

Обратите внимание, что установка worktree.useRelativePaths в «true» подразумевает включение конфигурации extensions.relativeWorktrees (см. git-config[1]), что делает её несовместимой со старыми версиями Git.

ОШИБКИ

При использовании устаревшего синтаксиса [раздел.подраздел] изменение значения приведёт к добавлению многострочного ключа вместо изменения, если подраздел указан хотя бы с одним символом в верхнем регистре. Например, когда конфигурация выглядит так

  [раздел.подраздел]
    key = value1

и выполнение git config раздел.Подраздел.key value2 приведёт к

  [раздел.подраздел]
    key = value1
    key = value2

GIT

Является частью пакета git[1]