git-config
Название
git-config — получение и установка параметров репозитория или глобальных параметров
Краткое описание
git config list [<file-option>] [<display-option>] [--includes] git config get [<file-option>] [<display-option>] [--includes] [--all] [--regexp] [--value=<pattern>] [--fixed-value] [--default=<default>] [--url=<url>] <name> git config set [<file-option>] [--type=<type>] [--all] [--value=<pattern>] [--fixed-value] <name> <value> git config unset [<file-option>] [--all] [--value=<pattern>] [--fixed-value] <name> git config rename-section [<file-option>] <old-name> <new-name> git config remove-section [<file-option>] <name> git config edit [<file-option>] git config [<file-option>] --get-colorbool <name> [<stdout-is-tty>]
Описание
С помощью этой команды можно запрашивать, устанавливать, заменять и сбрасывать параметры. Имя фактически состоит из раздела и ключа, разделённых точкой, а значение будет экранировано.
Добавлять к параметру несколько строк можно с помощью параметра --append. Если требуется обновить или сбросить параметр, который может состоять из нескольких строк, необходимо указать --value=<pattern> (расширенное регулярное выражение, если не указан параметр --fixed-value). Обновляются или сбрасываются только существующие значения, соответствующие шаблону. Чтобы обработать строки, которые не соответствуют шаблону, поставьте перед ним один восклицательный знак (см. также ПРИМЕРЫ); однако учтите, что это работает только если параметр --fixed-value не используется.
Параметр --type=<type> указывает git config проверять, можно ли канонизировать входящие и исходящие значения согласно заданному типу <type>. Если параметр --type=<type> не указан, канонизация не выполняется. Вызывающие программы могут сбросить существующий спецификатор --type с помощью --no-type.
При чтении значения по умолчанию считываются из системного, глобального и локального файлов конфигурации репозитория; параметры --system, --global, --local, --worktree и --file <filename> позволяют указать команде читать только из соответствующего источника (см. ФАЙЛЫ).
При записи новое значение по умолчанию записывается в локальный файл конфигурации репозитория; параметры --system, --global, --worktree, --file <filename> позволяют указать команде место записи (можно указать --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<config-file>.
Параметры
- --replace-all
-
По умолчанию заменяется не более одной строки. Этот параметр заменяет все строки, соответствующие ключу (и, при необходимости,
--value=<pattern>). - --append
-
Добавить к параметру новую строку, не изменяя существующие значения. Это аналогично указанию
--value=^$вset. - --comment <message>
-
Добавить комментарий в конец новых или изменённых строк.
Если
<message>начинается с одного или нескольких пробельных символов, за которыми следует#, он используется без изменений. Если он начинается с#, перед его использованием добавляется пробел. В противном случае перед ним добавляется строка"#"(пробел, затем решётка, затем пробел). Получившаяся строка помещается сразу после значения, заданного для переменной.<message>не должен содержать символов перевода строки (многострочные комментарии не допускаются). - --all
-
С параметром
getвернуть все значения многозначного ключа. - --regexp
-
С параметром
getинтерпретировать имя как регулярное выражение. В настоящее время сопоставление регулярных выражений выполняется с учётом регистра и производится по канонизированной версии ключа, в которой имена разделов и переменных приведены к нижнему регистру, а имена подразделов — нет. - --url=<URL>
-
Если в качестве <name> указано имя из двух частей — <section>.<key>, — возвращается значение для <section>.<URL>.<key>, часть <URL> которого наиболее точно соответствует заданному URL (если такого ключа нет, используется значение для <section>.<key>). Если в качестве имени указано только <section>, это выполняется для всех ключей раздела и выводится их список. Если значение не найдено, возвращается код ошибки 1.
- --global
-
При записи параметров: записывать в глобальный файл
~/.gitconfig, а не в репозиторий.git/config; если файл~/.gitconfigотсутствует, а файл$XDG_CONFIG_HOME/git/configсуществует, записывать в него.При чтении параметров: читать только из глобального файла
~/.gitconfigи из$XDG_CONFIG_HOME/git/config, а не из всех доступных файлов.См. также ФАЙЛЫ.
- --system
-
При записи параметров: записывать в системный файл
$(prefix)/etc/gitconfig, а не в репозиторий.git/config.При чтении параметров: читать только из системного файла
$(prefix)/etc/gitconfig, а не из всех доступных файлов.См. также ФАЙЛЫ.
- --local
-
При записи параметров: записывать в файл
.git/configрепозитория. Это поведение используется по умолчанию.При чтении параметров: читать только из файла
.git/configрепозитория, а не из всех доступных файлов.См. также ФАЙЛЫ.
- --worktree
-
Аналогично
--local, за исключением того, что при включённом параметреextensions.worktreeConfigчтение выполняется из$GIT_DIR/config.worktreeили запись в него. Если параметр не включён, этот режим аналогичен--local. Обратите внимание: для основного рабочего дерева$GIT_DIRсовпадает с$GIT_COMMON_DIR, а для других рабочих деревьев имеет вид$GIT_DIR/worktrees/<id>/. См. git-worktree[1], чтобы узнать, как включитьextensions.worktreeConfig. - -f <config-file>
- --file <config-file>
-
При записи параметров: записывать в указанный файл, а не в файл
.git/configрепозитория.При чтении параметров: читать только из указанного файла, а не из всех доступных файлов.
См. также ФАЙЛЫ.
- --blob <blob>
-
Аналогично
--file, но вместо файла используется указанный blob. Например, можно использоватьmaster:.gitmodulesдля чтения значений из файла.gitmodulesв ветке master. Полный список способов записи имён blob см. в разделе «УКАЗАНИЕ РЕВИЗИЙ» в gitrevisions[7]. -
--value=<pattern> -
--no-value -
С параметрами
get,setиunsetвыполнять сопоставление только с<pattern>. Если не указан параметр--fixed-value, шаблон представляет собой расширенное регулярное выражение.Используйте
--no-value, чтобы сбросить<pattern>. - --fixed-value
-
При использовании с
--value=<pattern> трактовать<pattern>как точную строку, а не как регулярное выражение. В результате будут выбраны только те пары имя/значение, значение которых в точности совпадает с<pattern>. - --type <type>
-
git configпроверяет, соответствуют ли все входные и выходные данные заданным ограничениям типа, и канонизирует выходные значения в соответствии с канонической формой типа <type>.Допустимые типы <type>:
-
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— на домашний каталог указанного пользователя. Этот спецификатор не влияет на установку значения (однако можно использоватьgitconfigsection.variable~/в командной строке, чтобы поручить раскрытие переменной оболочке). -
expiry-date: канонизирует значение, преобразуя фиксированную или относительную строку даты в метку времени. Этот спецификатор не влияет на установку значения. -
color: при получении значения канонизирует его, преобразуя в управляющую последовательность цвета ANSI. При установке значения выполняется проверка на возможность его канонизации как цвета ANSI, но записывается оно без изменений.
Если команда работает в режиме
list, аргумент--type<type> применяется к каждому выводимому значению конфигурации. Если значение невозможно корректно разобрать в этом формате, оно не попадёт в список. -
- --bool
- --int
- --bool-or-int
- --path
- --expiry-date
-
Устаревшие параметры для выбора спецификатора типа. Вместо них рекомендуется использовать
--type(см. выше). - --no-type
-
Отменить ранее заданный спецификатор типа (если он был задан). Этот параметр указывает
git configне канонизировать извлечённую переменную. Параметр--no-typeне действует без--type=<type> или--<type>. - -z
- --null
-
Для всех параметров, выводящих значения и/или ключи, всегда завершать значения нулевым символом (вместо символа новой строки). В качестве разделителя между ключом и значением использовать символ новой строки. Это позволяет безопасно разбирать вывод, не путая данные, например, если значения содержат переводы строк.
- --name-only
-
Для
listилиgetвыводить только имена переменных конфигурации. -
--show-names -
--no-show-names -
С параметром
getвыводить ключи конфигурации вместе со значениями. По умолчанию используется--no-show-names, если не указан параметр--urlи в<name>нет подразделов. - --show-origin
-
Дополнить вывод всех запрошенных параметров конфигурации типом источника (файл, стандартный ввод, blob, командная строка) и фактическим источником (путь к файлу конфигурации, ссылка или идентификатор blob, если применимо).
- --show-scope
-
Аналогично
--show-origin, дополняет вывод всех запрошенных параметров конфигурации областью действия этого значения (рабочее дерево, локальная, глобальная, системная, команда). - --get-colorbool <name> [<stdout-is-tty>]
-
Найти настройку цвета для <name> (например,
color.diff) и вывести "true" или "false". Значение <stdout-is-tty> должно быть "true" или "false"; оно учитывается, если в конфигурации указано "auto". Если <stdout-is-tty> не задано, проверяется стандартный вывод самой команды: она завершается со статусом 0, если следует использовать цвет, и со статусом 1 в противном случае. Если настройка цвета дляnameне определена, команда использует в качестве запасного вариантаcolor.ui. - --includes
- --no-includes
-
Учитывать директивы
include.*в файлах конфигурации при поиске значений. По умолчанию включено значениеoff, если указан конкретный файл (например, с помощью--file,--globalи т. д.), иonпри поиске во всех файлах конфигурации. - --default <value>
-
При использовании
get, если запрошенная переменная не найдена, считать, что ей присвоено значение <value>.
Устаревшие режимы
Следующие режимы признаны устаревшими в пользу подкоманд. Рекомендуется перейти на новый синтаксис.
- git config <name>
-
Заменён на
gitconfigget<name>. - git config <name> <value> [<value-pattern>]
-
Заменён на
gitconfigset[--value=<pattern>] <name> <value>. - -l
- --list
-
Заменён на
gitconfiglist. - --get <name> [<value-pattern>]
-
Заменён на
gitconfigget[--value=<pattern>] <name>. - --get-all <name> [<value-pattern>]
-
Заменён на
gitconfigget[--value=<pattern>]--all<name>. - --get-regexp <name-regexp>
-
Заменён на
gitconfigget--all--show-names--regexp<name-regexp>. - --get-urlmatch <name> <URL>
-
Заменён на
gitconfigget--url=<URL> <name>. - --get-color <name> [<default>]
-
Заменён на
gitconfigget--type=color[--default=<default>] <name>. - --add <name> <value>
-
Заменён на
gitconfigset--append<name> <value>. - --unset <name> [<value-pattern>]
-
Заменён на
gitconfigunset[--value=<pattern>] <name>. - --unset-all <name> [<value-pattern>]
-
Заменён на
gitconfigunset[--value=<pattern>]--all<name>. - --rename-section <old-name> <new-name>
-
Заменён на
gitconfigrename-section<old-name> <new-name>. - --remove-section <name>
-
Заменён на
gitconfigremove-section<name>. - -e
- --edit
-
Заменён на
gitconfigedit.
Конфигурация
pager.config учитывается только при выводе конфигурации, то есть при использовании list или get, которые могут возвращать несколько результатов. По умолчанию используется программа постраничного просмотра.
Файлы
По умолчанию git config считывает параметры конфигурации из нескольких файлов:
- $(prefix)/etc/gitconfig
-
Системный файл конфигурации.
- $XDG_CONFIG_HOME/git/config
- ~/.gitconfig
-
Файлы конфигурации пользователя. Если переменная окружения XDG_CONFIG_HOME не задана или пуста, в качестве $XDG_CONFIG_HOME используется $HOME/.config/.
Эти файлы также называются «глобальными» файлами конфигурации. Если существуют оба файла, они считываются в указанном выше порядке.
- $GIT_DIR/config
-
Файл конфигурации конкретного репозитория.
- $GIT_DIR/config.worktree
-
Этот файл необязателен и ищется только в том случае, если в $GIT_DIR/config присутствует
extensions.worktreeConfig.
При запуске любой команды git можно также передать дополнительные параметры конфигурации, используя параметр -c. Подробности см. в git[1].
Параметры будут считываться из всех доступных файлов. Отсутствующие или недоступные для чтения глобальные и системные файлы конфигурации игнорируются. Если файл конфигурации репозитория отсутствует или недоступен для чтения, git config завершится с ненулевым кодом ошибки. Если файл недоступен для чтения, выводится сообщение об ошибке; если файл отсутствует, сообщение не выводится.
Файлы считываются в указанном выше порядке; последнее найденное значение имеет приоритет над значениями, считанными ранее. Если используется несколько значений, используются все значения ключа из всех файлов.
По умолчанию параметры записываются только в файл конфигурации конкретного репозитория. Учтите, что это также влияет на такие параметры, как set и unset. git config изменяет только один файл за раз.
Ограничить источники конфигурации для чтения или записи можно, указав путь к файлу с помощью параметра --file или область действия конфигурации с помощью --system, --global, --local или --worktree. Подробнее см. раздел ПАРАМЕТРЫ выше.
Области действия
Каждый источник конфигурации относится к определённой области действия. Области действия:
- system
-
$(prefix)/etc/gitconfig
- global
-
$XDG_CONFIG_HOME/git/config
~/.gitconfig
- local
-
$GIT_DIR/config
- worktree
-
$GIT_DIR/config.worktree
- command
-
Переменные окружения 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не передан командеgitconfig, использовать файл, указанный вGIT_CONFIG, как если бы он был указан через--file. Эта переменная не влияет на другие команды Git и предназначена главным образом для обратной совместимости; обычно нет причин использовать её вместо параметра--file.
Примеры
Если файл .git/config выглядит так:
#
# This is the config file, and
# a '#' or ';' character indicates
# a comment
#
; core variables
[core]
; Don't trust file modes
filemode = false
; Our diff algorithm
[diff]
external = /usr/local/bin/diff-wrapper
renames = true
; Proxy settings
[core]
gitproxy=proxy-command for kernel.org
gitproxy=default-proxy ; for all the rest
; HTTP
[http]
sslVerify
[http "https://weak.example.com"]
sslVerify = false
cookieFile = /tmp/cookie.txt значение filemode можно установить в true с помощью команды
% git config set core.filemode true
У гипотетических записей команды proxy в конце есть суффикс, указывающий, к какому 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='[!]' section.key 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}your whitespace color or blue reverse${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 можно использовать для хранения системной конфигурации по умолчанию.
Переменные конфигурации используются как командами низкого уровня Git, так и командами пользовательского интерфейса. Переменные разделены на секции; полное имя переменной состоит из последнего сегмента, отделённого точкой, а имя секции — из всего, что находится перед последней точкой. Имена переменных не чувствительны к регистру, могут содержать только буквенно-цифровые символы и - и должны начинаться с буквы. Некоторые переменные могут встречаться несколько раз; в этом случае они называются многозначными.
Синтаксис
Синтаксис достаточно гибкий и допускающий вольности. Пробельные символы — в данном контексте пробел (SP) и горизонтальная табуляция (HT) — в основном игнорируются. Символы # и ; начинают комментарий, продолжающийся до конца строки. Пустые строки игнорируются.
Файл состоит из секций и переменных. Секция начинается с имени секции в квадратных скобках и продолжается до начала следующей секции. Имена секций не чувствительны к регистру. В именах секций допускаются только буквенно-цифровые символы, - и .. Каждая переменная должна относиться к какой-либо секции, то есть перед первым заданием переменной должен находиться заголовок секции.
Секции можно дополнительно разделить на подсекции. Чтобы начать подсекцию, укажите её имя в двойных кавычках через пробел после имени секции в заголовке секции, как в примере ниже:
[section "subsection"]
В именах подсекций учитывается регистр; они могут содержать любые символы, кроме символа новой строки и нулевого байта. Двойную кавычку " и обратную косую черту можно включить, экранировав их как \" и \\ соответственно. Обратные косые черты перед другими символами отбрасываются при чтении; например, \t читается как t, а \0 — как 0. Заголовки секций не могут занимать несколько строк. Переменные могут относиться непосредственно к секции или к указанной подсекции. Можно использовать [section], если уже есть [section "subsection"], но это необязательно.
Существует также устаревший синтаксис [section.subsection]. При использовании этого синтаксиса имя подсекции преобразуется в нижний регистр, при этом регистр также учитывается при сравнении. К именам таких подсекций применяются те же ограничения, что и к именам секций.
Все остальные строки (а также остаток строки после заголовка секции) распознаются как определения переменных в форме name = value (или просто name — краткая запись, означающая, что логическое значение переменной равно true). Имена переменных не чувствительны к регистру, могут содержать только буквенно-цифровые символы и - и должны начинаться с буквы.
Пробельные символы вокруг name, = и value отбрасываются. Внутренние пробельные символы в value сохраняются без изменений. Комментарии, начинающиеся с # или ; и продолжающиеся до конца строки, отбрасываются. Строку, задающую значение, можно продолжить на следующей строке, поставив в конце обратную косую черту (\); обратная косая черта и символы конца строки отбрасываются.
Если value должно содержать начальные или конечные пробельные символы, его необходимо заключить в двойные кавычки ("). Внутри двойных кавычек символы двойной кавычки (") и обратной косой черты (\) необходимо экранировать: используйте \" для " и \\ для \.
Распознаются следующие escape-последовательности (помимо \" и \\): \n для символа новой строки (NL), \t для горизонтальной табуляции (HT, TAB) и \b для возврата на одну позицию (BS). Другие escape-последовательности для символов (включая восьмеричные) недопустимы.
Включения
Секции include и includeIf позволяют включать директивы конфигурации из другого источника. Эти секции ведут себя одинаково, за исключением того, что секции includeIf можно игнорировать, если их условие не выполняется; см. раздел «Условные включения» ниже.
Можно включить файл конфигурации из другого файла, задав специальной переменной include.path (или includeIf.*.path) имя включаемого файла. Значением переменной служит путь; к нему применяется подстановка тильды. Эти переменные можно задавать несколько раз.
Содержимое включаемого файла вставляется немедленно, как если бы оно находилось в том месте, где встретилась директива включения. Если значение переменной является относительным путём, он считается относительно файла конфигурации, в котором встретилась директива включения. Примеры см. ниже.
Условные включения
Можно условно включить файл конфигурации из другого файла, задав переменной includeIf.<condition>.path имя включаемого файла.
Условие начинается с ключевого слова, за которым следуют двоеточие и данные в формате и со значением, зависящими от ключевого слова. Поддерживаются следующие ключевые слова:
-
gitdir -
Данные после ключевого слова
gitdirи двоеточия используются как шаблон glob. Если расположение каталога .git соответствует шаблону, условие включения выполнено.Расположение .git может быть обнаружено автоматически или получено из переменной окружения
$GIT_DIR. Если репозиторий обнаружен автоматически через файл .git (например, в подмодулях или связанном рабочем дереве), расположением .git считается конечное местоположение каталога .git, а не место расположения файла .git.Шаблон может содержать стандартные подстановочные символы glob, а также два дополнительных символа —
**/и/**, которые могут соответствовать нескольким компонентам пути. Подробности см. в gitignore[5]. Для удобства:-
Если шаблон начинается с
~/,~заменяется содержимым переменной окруженияHOME. -
Если шаблон начинается с
./, он заменяется каталогом, содержащим текущий файл конфигурации. -
Если шаблон не начинается ни с
~/, ни с./, ни с/, к нему автоматически добавляется префикс**/. Например, шаблонfoo/barстановится**/foo/barи будет соответствовать/any/path/to/foo/bar. -
Если шаблон заканчивается на
/, к нему автоматически добавляется**. Например, шаблонfoo/становитсяfoo/**. Иными словами, он соответствует «foo» и всему его содержимому, включая вложенные элементы.
-
-
gitdir/i -
То же, что и
gitdir, но при сопоставлении регистр не учитывается (например, в файловых системах, нечувствительных к регистру). -
onbranch -
Данные после ключевого слова
onbranchи двоеточия считаются шаблоном со стандартными подстановочными символами glob и двумя дополнительными символами —**/и/**, которые могут соответствовать нескольким компонентам пути. Если мы находимся в рабочем дереве, где имя текущей выбранной ветки соответствует шаблону, условие включения выполнено.Если шаблон заканчивается на
/, к нему автоматически добавляется**. Например, шаблонfoo/становитсяfoo/**. Иными словами, он соответствует всем веткам, начинающимся сfoo/. Это полезно, если ветки организованы иерархически и требуется применить конфигурацию ко всем веткам этой иерархии. -
hasconfig:remote.*.url -
Данные после этого ключевого слова и двоеточия считаются шаблоном со стандартными подстановочными символами glob и двумя дополнительными символами —
**/и/**, которые могут соответствовать нескольким компонентам. При первом появлении этого ключевого слова остальные файлы конфигурации просматриваются на наличие удалённых URL-адресов (без применения каких-либо значений). Если найден хотя бы один удалённый URL-адрес, соответствующий шаблону, условие включения выполнено.Файлы, включённые этим параметром (непосредственно или косвенно), не могут содержать удалённые URL-адреса.
Обратите внимание: в отличие от других условий includeIf, разрешение этого условия зависит от информации, которая ещё неизвестна на момент чтения условия. Типичный сценарий использования — наличие этого параметра в системной или глобальной конфигурации, а удалённого URL-адреса — в локальной; поэтому при разрешении условия требуется предварительное сканирование. Чтобы избежать проблемы «курицы и яйца», при которой потенциально включаемые файлы могут влиять на решение об их включении, Git разрывает этот цикл, запрещая этим файлам влиять на разрешение таких условий (и тем самым запрещая им объявлять удалённые URL-адреса).
Это ключевое слово названо так для обеспечения прямой совместимости со схемой имён, поддерживающей больше условий включения на основе переменных, однако на данный момент Git поддерживает только описанное выше ключевое слово.
Ещё несколько примечаний о сопоставлении с помощью gitdir и gitdir/i:
-
Символические ссылки в
$GIT_DIRперед сопоставлением не разрешаются. -
При сопоставлении за пределами
$GIT_DIRиспользуются как пути символических ссылок, так и реальные пути. Например, если ~/git является символической ссылкой на /mnt/storage/git, соответствовать будут иgitdir:~/git, иgitdir:/mnt/storage/git.В первоначальном выпуске этой возможности в версии v2.13.0 это работало иначе: сопоставлялся только реальный путь. Чтобы конфигурация была совместима с первоначальной версией этой возможности, необходимо указать только реальный путь или оба варианта.
-
Обратите внимание: «../» не является специальной последовательностью и будет сопоставляться буквально, что, скорее всего, не соответствует вашим намерениям.
Пример
# Core variables
[core]
; Don't trust file modes
filemode = false
# Our diff algorithm
[diff]
external = /usr/local/bin/diff-wrapper
renames = true
[branch "devel"]
remote = origin
merge = refs/heads/devel
# Proxy settings
[core]
gitProxy="ssh" for "kernel.org"
gitProxy=default-proxy ; for the rest
[include]
path = /path/to/foo.inc ; include by absolute path
path = foo.inc ; find "foo.inc" relative to the current file
path = ~/foo.inc ; find "foo.inc" in your `$HOME` directory
; include if $GIT_DIR is /path/to/foo/.git
[includeIf "gitdir:/path/to/foo/.git"]
path = /path/to/foo.inc
; include for all repositories inside /path/to/group
[includeIf "gitdir:/path/to/group/"]
path = /path/to/foo.inc
; include for all repositories inside $HOME/to/group
[includeIf "gitdir:~/to/group/"]
path = /path/to/foo.inc
; relative paths are always relative to the including
; file (if the condition is true); their location is not
; affected by the condition
[includeIf "gitdir:/path/to/group/"]
path = foo.inc
; include only if we are in a worktree where foo-branch is
; currently checked out
[includeIf "onbranch:foo-branch"]
path = foo.inc
; include only if a remote with the given URL exists (note
; that such a URL may be provided later in a file or in a
; file read after this file is read, as seen in this example)
[includeIf "hasconfig:remote.*.url:https://example.com/**"]
path = foo.inc
[remote "origin"]
url = https://example.com/git Значения
Значения многих переменных обрабатываются как простые строки, однако некоторые переменные принимают значения определённых типов, и для их записи существуют правила.
- логическое значение
-
Если переменная принимает логическое значение, для
trueиfalseдопускается множество синонимов; регистр символов во всех них не учитывается.- true
-
Литералами логического значения true являются
yes,on,trueи1. Кроме того, переменная, заданная без=<value>, считается равной true. - false
-
Литералами логического значения false являются
no,off,false,0и пустая строка.
При преобразовании значения в каноническую форму с помощью спецификатора типа
--type=boolgit configгарантирует, что результатом будет «true» или «false» (в нижнем регистре). - целое число
-
Значение многих переменных, задающих различные размеры, можно снабдить суффиксами
k,M,…, означающими «умножить число на 1024», «на 1024×1024» и т. д. - цвет
-
Значение переменной, принимающей цвет, представляет собой список цветов (не более двух: один для переднего плана, один для фона) и атрибутов (сколько угодно), разделённых пробелами.
Допустимы следующие основные цвета:
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сбрасывает все цвета и атрибуты перед применением указанных параметров окрашивания. Например,resetgreenзадаст зелёный цвет переднего плана и фон по умолчанию без активных атрибутов.Пустая строка цвета не оказывает никакого влияния на цвет. Это можно использовать, чтобы не окрашивать отдельные элементы, не отключая цвета полностью.
Для предопределённых цветовых слотов Git атрибуты сбрасываются в начале каждого элемента окрашенного вывода. Поэтому настройка
color.decorate.branchнаblackокрасит имя ветки в обычныйblack, даже если предыдущий элемент в той же строке вывода (например, открывающая скобка перед списком имён веток в выводеlog--decorate) окрашен с помощьюboldили другого атрибута. Однако пользовательские форматы журнала могут использовать более сложное многослойное окрашивание, и в таких случаях могут быть полезны отрицательные формы. - путь
-
Переменной, принимающей путь, можно задать строку, начинающуюся с «
~/» или «~user/»; к такой строке применяется обычная подстановка тильды:~/заменяется значением$HOME, а~user/— домашним каталогом указанного пользователя.Если путь начинается с
%(prefix)/, оставшаяся часть интерпретируется как путь относительно «префикса среды выполнения» Git, то есть относительно расположения, в котором установлен Git. Например,%(prefix)/bin/указывает на каталог, в котором находится исполняемый файл Git. Если Git собран без поддержки префикса среды выполнения, вместо него используется префикс, заданный при сборке. В маловероятном случае, когда нужно указать буквальный путь, который не должен подвергаться подстановкеnot, перед ним необходимо поставить./, например так:./%(prefix)/bin.Если перед именем переменной конфигурации стоит
:(optional), переменная считается несуществующей, если указанный путь не существует.
Переменные
Обратите внимание, что этот список неполон и не обязательно исчерпывающий. Описание переменных, относящихся к конкретным командам, можно найти в соответствующих страницах руководства.
Другие инструменты, связанные с Git, также могут использовать собственные переменные. Создавая новые переменные для своего инструмента, убедитесь, что их имена не конфликтуют с именами, используемыми самим Git и другими популярными инструментами, и опишите их в документации.
-
add.ignoreErrors -
add.ignore-errors(устарела) -
Указывает
gitaddпродолжать добавление файлов, если некоторые файлы не удаётся добавить из-за ошибок индексирования. Эквивалент параметра--ignore-errorsкоманды git-add[1]. Переменнаяadd.ignore-errorsустарела, поскольку её имя не соответствует обычному соглашению об именовании переменных конфигурации. - advice.*
-
Эти переменные управляют различными необязательными справочными сообщениями, призванными помочь новым пользователям. Если переменные не заданы, Git выводит сообщение вместе с инструкциями о том, как отключить его. Чтобы сообщить Git, что вы поняли проблему и больше не нуждаетесь в конкретном справочном сообщении, задайте соответствующей переменной значение
false.Эти сообщения предназначены для помощи пользователям и выводятся в стандартный поток ошибок. Если инструменты, запускающие Git как подпроцесс, считают их мешающими, они могут задать в окружении переменную
GIT_ADVICE=0, чтобы отключить все справочные сообщения.- addEmbeddedRepo
-
Показывается, если пользователь случайно добавляет один репозиторий Git внутрь другого.
- addEmptyPathspec
-
Показывается, если пользователь запускает
gitadd, не указав параметр pathspec. - addIgnoredFile
-
Показывается, если пользователь пытается добавить игнорируемый файл в индекс.
- amWorkDir
-
Показывается, если git-am[1] не удаётся применить файл патча, и сообщает пользователю расположение файла.
- ambiguousFetchRefspec
-
Показывается, если refspec для получения данных из нескольких удалённых репозиториев соответствует одному и тому же пространству имён веток удалённого отслеживания, из-за чего не удаётся настроить отслеживание ветки.
- checkoutAmbiguousRemoteBranchName
-
Показывается, если аргумент команды git-checkout[1] или git-switch[1] неоднозначно соответствует ветке удалённого отслеживания в нескольких удалённых репозиториях в ситуации, когда однозначный аргумент привёл бы к переключению на ветку удалённого отслеживания. О том, как задать удалённый репозиторий, используемый по умолчанию в некоторых ситуациях, когда выводится это сообщение, см. переменную конфигурации
checkout.defaultRemote. - commitBeforeMerge
-
Показывается, если git-merge[1] отказывается выполнять слияние, чтобы не перезаписать локальные изменения.
- detachedHead
-
Показывается, если пользователь с помощью git-switch[1] или git-checkout[1] переходит в состояние отделённого HEAD, и сообщает, как впоследствии создать локальную ветку.
- diverging
-
Показывается, если перемотка вперёд невозможна.
- fetchShowForcedUpdates
-
Показывается, если git-fetch[1] требуется много времени для вычисления принудительных обновлений после обновления ссылок, или чтобы предупредить об отключённой проверке.
- forceDeleteBranch
-
Показывается, если пользователь пытается удалить не полностью слитую ветку без указания параметра принудительного удаления.
- ignoredHook
-
Показывается, если хук игнорируется, потому что для него не установлен признак исполняемого файла.
- implicitIdentity
-
Показывается, если данные пользователя определяются по имени пользователя и доменному имени системы, и сообщает, как настроить его идентификационные данные.
- mergeConflict
-
Показывается, если выполнение различных команд прерывается из-за конфликтов.
- nestedTag
-
Показывается, если пользователь пытается рекурсивно создать тег для объекта-тега.
- pushAlreadyExists
-
Показывается, если git-push[1] отклоняет обновление, которое не допускает перемотки вперёд (например, тег).
- pushFetchFirst
-
Показывается, если git-push[1] отклоняет обновление, пытающееся перезаписать удалённую ссылку, указывающую на объект, которого у нас нет.
- pushNeedsForce
-
Показывается, если git-push[1] отклоняет обновление, пытающееся перезаписать удалённую ссылку, указывающую на объект, не являющийся коммитом, или заставить удалённую ссылку указывать на объект, не являющийся коммитом.
- pushNonFFCurrent
-
Показывается, если git-push[1] завершается с ошибкой из-за обновления текущей ветки, не допускающего перемотки вперёд.
- pushNonFFMatching
-
Показывается, если пользователь запустил git-push[1] и явно отправил «соответствующие ссылки» (то есть использовал
:или указал refspec, который не является текущей веткой), что привело к ошибке из-за невозможности перемотки вперёд. - pushRefNeedsUpdate
-
Показывается, если git-push[1] отклоняет принудительное обновление ветки, поскольку её ссылка удалённого отслеживания содержит обновления, которых нет локально.
- pushUnqualifiedRefname
-
Показывается, если git-push[1] не удаётся определить по исходной и целевой ссылкам, к какому пространству имён удалённых ссылок относится источник, но при этом можно предложить пользователю отправить данные в
refs/heads/*илиrefs/tags/*в зависимости от типа исходного объекта. - pushUpdateRejected
-
Задайте для этой переменной значение
false, если хотите одновременно отключить сообщенияpushNonFFCurrent,pushNonFFMatching,pushAlreadyExists,pushFetchFirst,pushNeedsForceиpushRefNeedsUpdate. - rebaseTodoError
-
Показывается при возникновении ошибки после редактирования списка команд для перебазирования.
- refSyntax
-
Показывается, если пользователь указывает недопустимое имя ссылки, и сообщает о документации по синтаксису ссылок.
- resetNoRefresh
-
Показывается, если git-reset[1] требуется более 2 секунд для обновления индекса после сброса, и сообщает пользователю, что можно использовать параметр
--no-refresh. - resolveConflict
-
Показывается различными командами, если конфликты мешают выполнить операцию.
- rmHints
-
Показывается при ошибке в выводе git-rm[1] и подсказывает, как действовать дальше в текущем состоянии.
- sequencerInUse
-
Показывается, если команда sequencer уже выполняется.
- skippedCherryPicks
-
Показывается, если git-rebase[1] пропускает коммит, который уже был перенесён с помощью cherry-pick в вышестоящую ветку.
- sparseIndexExpanded
-
Показывается, если разреженный индекс разворачивается в полный индекс, что, вероятно, связано с неожиданным наличием файлов за пределами разреженной рабочей копии.
- statusAheadBehind
-
Показывается, если git-status[1] вычисляет количество коммитов, на которые локальная ссылка опережает или отстаёт от ссылки удалённого отслеживания, и это вычисление занимает больше времени, чем ожидалось. Не выводится, если
status.aheadBehindимеет значение false или указан параметр--no-ahead-behind. - statusHints
-
Показывает в выводе git-status[1] подсказки о дальнейших действиях в текущем состоянии, в шаблоне для ввода сообщений коммитов в git-commit[1] и в справочном сообщении, которое выводится командами git-switch[1] или git-checkout[1] при переключении веток.
- statusUoption
-
Показывается, если git-status[1] требуется более 2 секунд для перечисления неотслеживаемых файлов, и сообщает пользователю, что можно использовать параметр
-u. - submoduleAlternateErrorStrategyDie
-
Показывается, если параметр submodule.alternateErrorStrategy, заданный в значение "die", приводит к фатальной ошибке.
- submoduleMergeConflict
-
Выводится при возникновении нетривиального конфликта слияния подмодуля.
- submodulesNotUpdated
-
Показывается, если пользователь запускает команду подмодуля, которая завершается с ошибкой, потому что не была выполнена команда
gitsubmoduleupdate--init. - suggestDetachingHead
-
Показывается, если git-switch[1] отказывается отделить HEAD без явного параметра
--detach. - updateSparsePath
-
Показывается, если git-add[1] или git-rm[1] предлагается обновить записи индекса за пределами текущей разреженной рабочей копии.
- waitingForEditor
-
Показывается, пока Git ожидает ввода в редакторе. Актуально, например, если редактор запускается не в терминале.
- worktreeAddOrphan
-
Показывается, если пользователь пытается создать рабочее дерево по недопустимой ссылке, и сообщает, как вместо этого создать новую ветку без коммитов.
- alias.*
- alias.*.command
-
Псевдонимы команд для оболочки команды git[1]. Псевдонимы можно задавать в двух форматах:
-
Без подраздела, например [
alias]co=checkout. Имя псевдонима ("co" в этом примере) может содержать только ASCII-буквы и цифры и символ-; регистр букв при сопоставлении не учитывается. -
С подразделом, например [
alias"co"]command=checkout. Имя псевдонима может содержать любые символы, включая UTF-8, кроме символов новой строки и нулевых байтов; сопоставление выполняется с учётом регистра, по исходным байтам. Действие псевдонима задаётся вcommand.
Примеры:
# Without subsection (ASCII alphanumeric and dash only) [alias] co = checkout st = status # With subsection (allows any characters, including UTF-8) [alias "hämta"] command = fetch [alias "rätta till"] command = commit --amendЕсли задан псевдоним Git, например:
$ git config --global alias.last "cat-file commit HEAD" # Which is equivalent to $ git config --global alias.last.command "cat-file commit HEAD"
gitlastэквивалентноgitcat-filecommitHEAD.Чтобы избежать путаницы и проблем при использовании скриптов, псевдонимы, скрывающие существующие команды Git, игнорируются, за исключением устаревших команд. Аргументы разделяются пробелами; поддерживаются обычные правила экранирования и заключения в кавычки оболочки. Для заключения аргументов в кавычки можно использовать пару кавычек или обратную косую черту.
Обратите внимание, что первое слово псевдонима не обязательно должно быть командой. Это может быть параметр командной строки, передаваемый при вызове
git. В частности, это полезно при использовании с-cдля передачи разовых настроек или с-pдля принудительного включения постраничного вывода. Например, можно определитьloud-rebase=-ccommit.verbose=truerebase, чтобы запускgitloud-rebaseбыл эквивалентенgit-ccommit.verbose=truerebase. Кроме того, полезным будет псевдонимps=-pstatus, посколькуgitpsбудет выводить постранично результат командыgitstatus, хотя сама исходная команда этого не делает.Если раскрытие псевдонима начинается с восклицательного знака, оно будет интерпретироваться как команда оболочки. Например, если определить
alias.new=!gitk--all--notORIG_HEAD, то вызовgitnewбудет эквивалентен выполнению команды оболочкиgitk--all--notORIG_HEAD. Обратите внимание:-
Команды оболочки выполняются из корневого каталога репозитория, который не обязательно совпадает с текущим каталогом.
-
Переменной
GIT_PREFIXприсваивается значение, возвращаемое командойgitrev-parse--show-prefix, запущенной из исходного текущего каталога. См. git-rev-parse[1]. -
Псевдонимы команд оболочки всегда получают любые дополнительные аргументы, переданные командной строке Git, в виде позиционных аргументов.
-
Будьте осторожны, если псевдоним оболочки представляет собой скрипт в одну строку с несколькими командами (например, в конвейере), обращается к нескольким аргументам или иным образом не может обработать позиционные аргументы, добавляемые в конец. Например, псевдоним
alias.cmd="!echo$1|grep$2", вызванный какgitcmd12, будет выполнен какecho $1 | grep $2 1 2, что не даст нужного результата. -
Удобный способ решить эту проблему — записать операции скрипта во встроенную функцию, которой затем передаются аргументы командной строки. Например, alias.cmd = "!c() { echo $1 | grep $2 ; }; c" корректно выполнит предыдущий пример.
-
Задание
GIT_TRACE=1может помочь отладить команду, выполняемую для вашего псевдонима.
-
-
-
am.keepcr -
Если значение равно true, git-am[1] вызывает git-mailsplit[1] для патчей в формате mbox с параметром
--keep-cr. В этом случае git-mailsplit[1] не будет удалять \r из строк, заканчивающихся на \r\n. Значение можно переопределить, указав--no-keep-crв командной строке. -
am.threeWay -
По умолчанию git-am[1] завершится с ошибкой, если патч не удастся применить без конфликтов. Если задать значение true, эта настройка указывает git-am[1] использовать трёхстороннее слияние, если в патче записана идентичность объектов blob, к которым его нужно применить, и эти объекты blob доступны локально (эквивалентно указанию параметра
--3wayв командной строке). По умолчанию установлено значениеfalse. -
am.messageId -
При использовании git-am[1] добавляет к коммиту завершающий элемент
Message-IDна основе заголовка электронного письма (см. git-interpret-trailers[1]). См. также параметры--message-idи--no-message-id. -
apply.ignoreWhitespace -
Если задано значение
change, указываетgitapplyигнорировать изменения в пробельных символах, как и параметр--ignore-space-change. Если задано одно из значенийno,none,never,false, указываетgitapplyучитывать все различия в пробельных символах. См. git-apply[1]. -
apply.whitespace -
Указывает
gitapply, как обрабатывать пробельные символы, как и параметр--whitespace. См. git-apply[1]. - attr.tree
-
Ссылка на дерево в репозитории, из которого следует считывать атрибуты вместо файла
.gitattributesв рабочем дереве. Если значение не разрешается в допустимый объект дерева, вместо него используется пустое дерево. Если используется переменная окруженияGIT_ATTR_SOURCEили параметр командной строки--attr-source, эта переменная конфигурации не действует.
| Примечание | Параметры конфигурации в bitmapPseudoMerge.* считаются ЭКСПЕРИМЕНТАЛЬНЫМИ: в будущем они могут измениться или быть полностью удалены. Дополнительные сведения о функции битовых карт псевдослияний см. в разделе "Битовые карты псевдослияний" документации gitpacking[7]. |
- bitmapPseudoMerge.<name>.pattern
-
Регулярное выражение, используемое для сопоставления имён ссылок. Коммиты, на которые указывают ссылки, соответствующие этому шаблону (и отвечающие приведённым ниже критериям, например
bitmapPseudoMerge.<name>.sampleRateиbitmapPseudoMerge.<name>.threshold), будут рассматриваться для включения в битовую карту псевдослияния.Коммиты группируются в группы псевдослияния в зависимости от того, соответствуют ли шаблону — расширенному регулярному выражению — какие-либо ссылки, указывающие на данный коммит.
Внутри группы псевдослияния коммиты могут быть дополнительно сгруппированы в подгруппы на основе групп захвата в шаблоне. Эти подгруппы формируются из регулярных выражений путём объединения всех групп захвата регулярного выражения с
-дефисом между ними.Например, если шаблон —
refs/tags/, то все теги (при условии, что они отвечают приведённым ниже критериям) будут считаться кандидатами в одну группу псевдослияния. Однако если шаблон —refs/remotes/([0-9])+/tags/, то теги с разных удалённых репозиториев будут сгруппированы в отдельные группы псевдослияния в зависимости от номера удалённого репозитория. - bitmapPseudoMerge.<name>.decay
-
Определяет скорость, с которой уменьшается размер последовательных групп битовых карт псевдослияния. Значение должно быть неотрицательным. Этот параметр можно считать
kв функцииf(n)=C*n^-k, гдеf(n) — размер `n`-й группы.Если задать скорость затухания равной
0, все группы будут иметь одинаковый размер. Если задать скорость затухания равной1, размер начальной группы составитnthgrouptobe1/n. При более высоких значениях скорости затухания размер каждой следующей группы уменьшается всё быстрее. Значение по умолчанию —1.Если все группы имеют одинаковый размер, группы с более новыми коммитами могут использоваться реже, чем более ранние группы, поскольку ссылки на новые коммиты, вероятнее всего, будут обновляться чаще, чем ссылка на старый коммит.
- bitmapPseudoMerge.<name>.sampleRate
-
Определяет долю коммитов без битовых карт (среди вершин ссылок), выбираемых для включения в нестабильную битовую карту псевдослияния. Значение должно быть больше
0и меньше либо равно1. Значение по умолчанию —1. - bitmapPseudoMerge.<name>.threshold
-
Определяет минимальный возраст коммитов без битовых карт (как указано выше, среди вершин ссылок), которые могут быть включены в нестабильную битовую карту псевдослияния. Значение по умолчанию —
1.week.ago. - bitmapPseudoMerge.<name>.maxMerges
-
Определяет максимальное число коммитов псевдослияния, между которыми могут распределяться коммиты.
Для групп псевдослияния, шаблоны которых не содержат групп захвата, этот параметр применяется ко всем коммитам, соответствующим регулярному выражению. Для шаблонов, содержащих одну или несколько групп захвата, этот параметр применяется к каждой уникальной группе захвата.
Например, если группа захвата —
refs/tags/, то этот параметр распределит все теги не более чем поmaxMergesкоммитам псевдослияния. Однако если группа захвата, например, —refs/remotes/([0-9]+)/tags/, то этот параметр будет применяться отдельно к набору тегов каждого удалённого репозитория.Значение должно быть неотрицательным. Значение по умолчанию — 64.
- bitmapPseudoMerge.<name>.stableThreshold
-
Определяет минимальный возраст коммитов (как указано выше, среди вершин ссылок; при этом стабильные коммиты остаются кандидатами, даже если они уже охвачены битовой картой), которые могут быть включены в стабильную битовую карту псевдослияния. Значение по умолчанию —
1.month.ago.При меньшем значении порога (например, 1.week.ago) будет создано больше стабильных групп (что потребует однократных затрат на создание), но со временем эти группы, вероятно, устареют. Более высокое значение приводит к противоположному результату: создаётся меньше стабильных групп, зато они полезнее.
- bitmapPseudoMerge.<name>.stableSize
-
Определяет размер (в количестве коммитов) стабильной битовой карты псевдослияния. Значение по умолчанию —
512. - blame.blankBoundary
-
Показывать пустое имя объекта коммита для граничных коммитов в git-blame[1]. По умолчанию этот параметр отключён.
- blame.coloring
-
Определяет цветовую схему для вывода команды blame. Значением может быть
repeatedLines,highlightRecentилиnone(значение по умолчанию). - blame.date
-
Задаёт формат дат в выводе git-blame[1]. Если параметр не задан, используется формат iso. Допустимые значения см. в описании параметра
--dateв git-log[1]. - blame.showEmail
-
Показывать адрес электронной почты автора вместо его имени в git-blame[1]. По умолчанию этот параметр отключён.
- blame.showRoot
-
Не считать корневые коммиты границами в git-blame[1]. По умолчанию этот параметр отключён.
- blame.ignoreRevsFile
-
Игнорировать ревизии, перечисленные в файле (по одному полному имени объекта на строку) при выполнении git-blame[1]. Пробелы и комментарии, начинающиеся с
#, игнорируются. Этот параметр можно указывать несколько раз. Пустое имя файла сбрасывает список игнорируемых ревизий. Этот параметр обрабатывается перед параметром командной строки--ignore-revs-file. - blame.markUnblamableLines
-
Помечать в выводе git-blame[1] символом
*строки, изменённые игнорируемой ревизией, которые не удалось отнести к другому коммиту. - blame.markIgnoredLines
-
Помечать в выводе git-blame[1] символом
?строки, изменённые игнорируемой ревизией, которые удалось отнести к другому коммиту. -
branch.autoSetupMerge -
Указывает
gitbranch,gitswitchиgitcheckoutнастраивать новые ветки так, чтобы git-pull[1] правильно выполнял слияние с исходной веткой. Даже если этот параметр не задан, такое поведение можно выбрать отдельно для каждой ветки с помощью параметров--trackи--no-track. Значение по умолчанию —true. Допустимые значения:-
false -
автоматическая настройка не выполняется
-
true -
автоматическая настройка выполняется, если исходная точка — ветка отслеживания удалённого репозитория
-
always -
автоматическая настройка выполняется, если исходная точка — локальная ветка или ветка отслеживания удалённого репозитория
-
inherit -
если для исходной точки настроено отслеживание, эта настройка копируется в новую ветку
-
simple -
автоматическая настройка выполняется, только если исходная точка — ветка отслеживания удалённого репозитория, а имя новой ветки совпадает с именем ветки удалённого репозитория.
-
-
branch.autoSetupRebase -
Если с помощью
gitbranch,gitswitchилиgitcheckoutсоздаётся новая ветка, отслеживающая другую ветку, эта переменная указывает Git настроить pull на перебазирование вместо слияния (см.branch.<name>.rebase). Допустимые значения:-
never -
перебазирование никогда автоматически не включается.
-
local -
перебазирование включается для отслеживаемых веток других локальных веток.
-
remote -
перебазирование включается для отслеживаемых веток веток отслеживания удалённых репозиториев.
-
always -
перебазирование включается для всех отслеживаемых веток.
Сведения о настройке отслеживания одной веткой другой см. в
branch.autoSetupMerge. Значение по умолчанию —never. -
-
branch.sort -
Эта переменная управляет сортировкой веток при их отображении командой git-branch[1]. Если параметр
--sort=<value> не указан, значение этой переменной используется по умолчанию. Допустимые значения см. среди имён полей в git-for-each-ref[1]. -
branch.<name>.remote -
Находясь в ветке
<name>, параметр указываетgitfetchиgitpush, из какого удалённого репозитория получать изменения или в какой отправлять их. Удалённый репозиторий для отправки можно переопределить с помощьюremote.pushDefault(для всех веток). Удалённый репозиторий для отправки из текущей ветки можно дополнительно переопределить параметромbranch.<name>.pushRemote. Если удалённый репозиторий не настроен или текущая ветка не выбрана, а в репозитории определено несколько удалённых репозиториев, для получения изменений по умолчанию используетсяorigin, а для отправки —remote.pushDefault. Кроме того,.(точка) обозначает текущий локальный репозиторий (репозиторий-точку); см. последнее примечание ниже в описанииbranch.<name>.merge. -
branch.<name>.pushRemote -
Находясь в ветке
<name>, этот параметр переопределяетbranch.<name>.remoteдля отправки изменений. Он также переопределяетremote.pushDefaultпри отправке из ветки<name>. Если вы получаете изменения из одного места (например, из вышестоящего репозитория), а отправляете в другое (например, в собственный репозиторий для публикации), задайтеremote.pushDefault, чтобы указать удалённый репозиторий для отправки из всех веток, а этот параметр используйте для переопределения значения для конкретной ветки. -
branch.<name>.merge -
Вместе с
branch.<name>.remoteопределяет вышестоящую ветку для данной ветки. Параметр указываетgitfetch/gitpull/gitrebase, какую ветку объединять, а также может влиять наgitpush(см.push.default). Находясь в ветке<name>, он указываетgitfetchспецификацию ссылок по умолчанию, которую следует пометить для слияния вFETCH_HEAD. Значение обрабатывается как удалённая часть спецификации ссылок и должно соответствовать ссылке, получаемой из удалённого репозитория, указанного вbranch.<name>.remote. Сведения о слиянии используются командойgitpull(которая сначала вызываетgitfetch) для поиска ветки слияния по умолчанию. Без этого параметра командаgitpullпо умолчанию выполняет слияние с первой полученной спецификацией ссылок. Укажите несколько значений, чтобы выполнить слияние «осьминог». Если нужно настроитьgitpullтак, чтобы она выполняла слияние в<name>из другой ветки локального репозитория, задайте дляbranch.<name>.mergeнужную ветку, а дляbranch.<name>.remoteиспользуйте относительный путь.(точку). -
branch.<name>.mergeOptions -
Задаёт параметры слияния по умолчанию для ветки
<name>. Синтаксис и поддерживаемые параметры совпадают с git-merge[1], однако значения параметров, содержащие пробельные символы, в настоящее время не поддерживаются. -
branch.<name>.rebase -
Если значение равно true, перебазировать ветку
<name>поверх полученной ветки вместо слияния с веткой по умолчанию из удалённого репозитория по умолчанию при запускеgitpull. См.pull.rebase, если требуется настроить такое поведение не для отдельной ветки.Если значение равно
merges(или простоm), передать параметр--rebase-mergesкомандеgitrebase, чтобы включить локальные коммиты слияния в перебазирование (подробности см. в git-rebase[1]).Если значение равно
interactive(или простоi), перебазирование выполняется в интерактивном режиме.ПРИМЕЧАНИЕ: эта операция потенциально опасна; не используйте её, если не понимаете последствий (подробности см. в git-rebase[1]).
-
branch.<name>.description -
Описание ветки; его можно изменить с помощью
gitbranch--edit-description. Описание ветки автоматически добавляется в сопроводительное письмоformat-patchили сводкуrequest-pull. - browser.<tool>.cmd
-
Задаёт команду для запуска указанного браузера. Указанная команда выполняется в оболочке; URL передаются ей в качестве аргументов. (См. git-web--browse[1].)
- browser.<tool>.path
-
Переопределяет путь к указанному инструменту, который может использоваться для просмотра справки в формате HTML (см. параметр
-wв git-help[1]) или рабочего репозитория в gitweb (см. git-instaweb[1]). - bundle.*
-
Ключи
bundle.*могут присутствовать в файле списка пакетов, найденном с помощью параметраgitclone--bundle-uri. В настоящее время эти ключи не действуют, если указаны в файле конфигурации репозитория, но в будущем это изменится. Подробности см. в документе о проектировании URI пакетов. - bundle.version
-
Это целочисленное значение указывает версию формата списка пакетов, используемого в данном списке. В настоящее время допустимо только значение
1. - bundle.mode
-
Это строковое значение должно быть равно
allилиany. Оно определяет, необходимы ли все объявленные пакеты для полного понимания содержащейся в них информации (all) или достаточно любого одного URI пакета из списка (any). - bundle.heuristic
-
Если существует этот ключ со строковым значением, список пакетов предназначен для эффективной работы с инкрементными командами
gitfetch. Эвристика указывает на наличие дополнительных ключей для каждого пакета, помогающих определить, какое подмножество пакетов следует загрузить клиенту. В настоящее время поддерживается только значениеcreationToken. - bundle.<id>.*
-
Ключи
bundle.<id>.*используются для описания отдельного элемента списка пакетов, сгруппированного под <id> для идентификации. - bundle.<id>.uri
-
Это строковое значение задаёт URI, по которому Git может получить содержимое данного <id>. Этот URI может указывать на файл пакета или другой список пакетов.
-
checkout.defaultRemote -
При выполнении
gitcheckout<something> илиgitswitch<something>, если у вас только один удалённый репозиторий, Git может неявно перейти к переключению на ветку и её отслеживанию, напримерorigin/<something>. Это перестаёт работать, как только появляется несколько удалённых репозиториев с ссылкой<something>. Этот параметр позволяет задать предпочтительный удалённый репозиторий, который всегда будет выбираться при разрешении неоднозначности. Обычно в качестве такого значения указываютorigin.В настоящее время этот параметр используется командами git-switch[1] и git-checkout[1], когда
gitcheckout<something> илиgitswitch<something> переключает на ветку<something>в другом удалённом репозитории, а также командой git-worktree[1], когдаgitworktreeaddуказывает на ветку удалённого репозитория. В будущем этот параметр может использоваться и другими командами или функциями переключения. -
checkout.guess -
Задаёт значение по умолчанию для параметра
--guessили--no-guessв командахgitcheckoutиgitswitch. См. git-switch[1] и git-checkout[1]. -
checkout.workers -
Количество параллельных рабочих процессов для обновления рабочего дерева. По умолчанию используется один процесс, то есть выполнение происходит последовательно. Если значение меньше единицы, Git использует столько рабочих процессов, сколько доступно логических ядер. Этот параметр и
checkout.thresholdForParallelismвлияют на все команды, выполняющие переключение. Например, checkout, clone, reset, sparse-checkout и т. д.ПримечаниеПараллельное переключение обычно обеспечивает более высокую производительность для репозиториев на SSD или в NFS. Для репозиториев на дисках с вращающимися пластинами и/или компьютеров с небольшим количеством ядер последовательное переключение, используемое по умолчанию, зачастую работает быстрее. На производительность параллельного варианта также могут влиять размер репозитория и уровень сжатия. -
checkout.thresholdForParallelism -
При параллельном переключении с небольшим количеством файлов затраты на запуск подпроцессов и межпроцессное взаимодействие могут превысить выигрыш от распараллеливания. Этот параметр позволяет задать минимальное количество файлов, при котором следует использовать параллельное переключение. Значение по умолчанию — 100.
- clean.requireForce
-
Логический параметр, запрещающий git-clean удалять файлы без указания -f. По умолчанию включён.
-
clone.defaultRemoteName -
Имя удалённого репозитория, создаваемого при клонировании репозитория. По умолчанию —
origin. Его можно переопределить, передав параметр командной строки--originкоманде git-clone[1]. -
clone.rejectShallow -
Отклонять клонирование неглубокого репозитория; это поведение можно переопределить, передав параметр
--reject-shallowв командной строке. См. git-clone[1]. -
clone.filterSubmodules -
Если задан фильтр частичного клонирования (см.
--filterв git-rev-list[1]) и используется--recurse-submodules, применять этот фильтр также к подмодулям. - color.advice
-
Логический параметр для включения или отключения цвета в подсказках (например, при ошибке отправки; список см. в
advice.*). Может принимать значенияalways,false(илиnever) либоauto(илиtrue); в последнем случае цвета используются только при выводе ошибок в терминал. Если параметр не задан, используется значениеcolor.ui(по умолчанию —auto). - color.advice.hint
-
Использовать пользовательский цвет для подсказок.
- color.blame.highlightRecent
-
Задаёт цвет аннотаций строк для
gitblame--color-by-ageв зависимости от возраста строки.Для этого параметра следует задать разделённый запятыми список значений цвета и даты: список должен начинаться и заканчиваться цветом, а даты должны идти от самых ранних к самым поздним. Метаданные будут окрашены указанными цветами, если строка была добавлена до заданной отметки времени; более ранние цвета с отметкой времени при этом переопределяются.
Вместо абсолютной отметки времени можно использовать относительное время. Например, значение
2.weeks.agoподходит для обозначения всего, что старше двух недель.По умолчанию используется
blue,12monthago,white,1monthago,red: всё, что старше года, окрашивается в синий цвет; недавние изменения возрастом от месяца до года остаются белыми, а строки, добавленные за последний месяц, окрашиваются в красный цвет. - color.blame.repeatedLines
-
Использовать указанный цвет для аннотаций строк в
gitblame--color-lines, если они относятся к тому же коммиту, что и предыдущая строка. По умолчанию используется голубой цвет. - color.branch
-
Логическое значение для включения или отключения цвета в выводе git-branch[1]. Может принимать значение
always,false(илиnever) либоauto(илиtrue); в последнем случае цвет используется только при выводе в терминал. Если значение не задано, используется значениеcolor.ui(по умолчанию —auto). - color.branch.<slot>
-
Использовать заданный цвет для раскрашивания ветвей. <slot> может принимать одно из значений:
current(текущая ветвь),local(локальная ветвь),remote(ветвь удалённого отслеживания в refs/remotes/),upstream(отслеживаемая вышестоящая ветвь),plain(другие ссылки). - color.diff
-
Использовать ли управляющие последовательности ANSI для раскрашивания исправлений. Если задано значение
always, команды git-diff[1], git-log[1] и git-show[1] будут раскрашивать все исправления. Если задано значениеtrueилиauto, эти команды будут использовать цвет только при выводе в терминал. Если значение не задано, используется значениеcolor.ui(по умолчанию —auto).Это не влияет на git-format-patch[1] и низкоуровневые команды
git-diff-*. Значение можно переопределить в командной строке параметром--color[=<when>]. - color.diff.<slot>
-
Использовать заданный цвет для раскрашивания различий. <slot> указывает, какую часть исправления раскрашивать заданным цветом; возможные значения:
context(контекстный текст —plainявляется историческим синонимом),meta(метаинформация),frag(заголовок фрагмента),func(функция в заголовке фрагмента),old(удалённые строки),new(добавленные строки),commit(заголовки коммитов),whitespace(подсветка ошибок в пробельных символах),oldMoved(удалённые строки),newMoved(добавленные строки),oldMovedDimmed,oldMovedAlternative,oldMovedAlternativeDimmed,newMovedDimmed,newMovedAlternativenewMovedAlternativeDimmed(подробности см. в настройке<mode>параметра--color-movedкоманды git-diff[1]),contextDimmed,oldDimmed,newDimmed,contextBold,oldBoldиnewBold(подробности см. в git-range-diff[1]). - color.decorate.<slot>
-
Использовать заданный цвет для вывода
git log --decorate. <slot> может принимать одно из значений:branch,remoteBranch,tag,stashилиHEAD— соответственно для локальных ветвей, ветвей удалённого отслеживания, тегов, stash и HEAD;grafted— для пересаженных коммитов. - color.grep
-
Если задано значение
always, совпадения всегда подсвечиваются. При значенииfalse(илиnever) подсветка не используется. При значенииtrueилиautoцвет используется только при выводе в терминал. Если значение не задано, используется значениеcolor.ui(по умолчанию —auto). - color.grep.<slot>
-
Использовать заданный цвет для раскрашивания вывода grep. <slot> указывает, какую часть строки раскрашивать заданным цветом; возможны следующие значения:
-
context -
текст, не совпавший с шаблоном, в контекстных строках (при использовании
-A,-Bили-C) -
filename -
префикс с именем файла (если не используется
-h) -
function -
строки с именами функций (при использовании
-p) -
lineNumber -
префикс с номером строки (при использовании
-n) -
column -
префикс с номером столбца (при использовании
--column) -
match -
текст, совпавший с шаблоном (эквивалентно заданию
matchContextиmatchSelected) -
matchContext -
текст, совпавший с шаблоном, в контекстных строках
-
matchSelected -
текст, совпавший с шаблоном, в выбранных строках. Также используется для настройки следующих подкоманд git-log[1]:
--grep,--authorи--committer. -
selected -
текст, не совпавший с шаблоном, в выбранных строках. Также используется для настройки следующих подкоманд git-log[1]:
--grep,--authorи--committer. -
separator -
разделители между полями в строке (
:,-и=) и между фрагментами (--)
-
- color.interactive
-
Если задано значение
always, для интерактивных запросов и отображения данных всегда используется цвет (например, в командах "git-add --interactive" и "git-clean --interactive"). При значении false (илиnever) цвет не используется. При значенииtrueилиautoцвет используется только при выводе в терминал. Если значение не задано, используется значениеcolor.ui(по умолчанию —auto). - color.interactive.<slot>
-
Использовать заданный цвет для вывода
git add --interactiveиgit clean --interactive. <slot> может принимать значениеprompt,header,helpилиerrorдля четырёх разных типов обычного вывода интерактивных команд. - color.pager
-
Логическое значение, определяющее, должны ли цветовые режимы
autoраскрашивать вывод, передаваемый программе постраничного просмотра. По умолчанию включено; задайте значение false, если ваша программа постраничного просмотра не распознаёт коды цветов ANSI. - color.push
-
Логическое значение для включения или отключения цвета в сообщениях об ошибках при отправке изменений. Может принимать значение
always,false(илиnever) либоauto(илиtrue); в последнем случае цвет используется только при выводе сообщения об ошибке в терминал. Если значение не задано, используется значениеcolor.ui(по умолчанию —auto). - color.push.error
-
Использовать заданный цвет для сообщений об ошибках при отправке изменений.
- color.remote
-
Если значение задано, ключевые слова в начале строки подсвечиваются. Это ключевые слова "error", "warning", "hint" и "success"; регистр при сопоставлении не учитывается. Может принимать значение
always,false(илиnever) либоauto(илиtrue). Если значение не задано, используется значениеcolor.ui(по умолчанию —auto). - color.remote.<slot>
-
Использовать заданный цвет для каждого ключевого слова удалённого узла. <slot> может принимать значение
hint,warning,successилиerror, соответствующее ключевому слову. - color.showBranch
-
Логическое значение для включения или отключения цвета в выводе git-show-branch[1]. Может принимать значение
always,false(илиnever) либоauto(илиtrue); в последнем случае цвет используется только при выводе в терминал. Если значение не задано, используется значениеcolor.ui(по умолчанию —auto). - color.status
-
Логическое значение для включения или отключения цвета в выводе git-status[1]. Может принимать значение
always,false(илиnever) либоauto(илиtrue); в последнем случае цвет используется только при выводе в терминал. Если значение не задано, используется значениеcolor.ui(по умолчанию —auto). - color.status.<slot>
-
Использовать заданный цвет для раскрашивания статуса. <slot> может принимать одно из значений:
header(текст заголовка сообщения о состоянии),addedилиupdated(файлы, добавленные, но не зафиксированные),changed(файлы, изменённые, но не добавленные в индекс),untracked(файлы, не отслеживаемые Git),branch(текущая ветвь),nobranch(цвет предупрежденияno branch; по умолчанию — красный),localBranchилиremoteBranch(имена локальной и удалённой ветвей соответственно, если в кратком формате статуса отображаются сведения о ветви и её отслеживании), либоunmerged(файлы с неслитыми изменениями). - color.transport
-
Логическое значение для включения или отключения цвета при отклонении отправки изменений. Может принимать значение
always,false(илиnever) либоauto(илиtrue); в последнем случае цвет используется только при выводе сообщения об ошибке в терминал. Если значение не задано, используется значениеcolor.ui(по умолчанию —auto). - color.transport.rejected
-
Использовать заданный цвет, если отправка изменений была отклонена.
- color.ui
-
Эта переменная задаёт значения по умолчанию для таких переменных, как
color.diffиcolor.grep, которые управляют использованием цвета в разных группах команд. Область её действия будет расширяться по мере того, как новые команды будут получать настройки для задания значения параметра--colorпо умолчанию. Задайте значениеfalseилиnever, если хотите, чтобы команды Git не использовали цвет без явного включения с помощью другой настройки или параметра--color. Задайте значениеalways, если хотите, чтобы цвет использовался для всего вывода, не предназначенного для обработки программами; задайте значениеtrueилиauto(значение по умолчанию начиная с Git 1.8.4), если хотите, чтобы такой вывод раскрашивался при отправке в терминал. - column.ui
-
Указывает, должны ли поддерживаемые команды выводить данные в несколько столбцов. Эта переменная содержит список параметров, разделённых пробелами или запятыми:
Эти параметры задают условия включения функции (по умолчанию —
never):-
always -
всегда выводить в несколько столбцов
-
never -
никогда не выводить в несколько столбцов
-
auto -
выводить в несколько столбцов, если вывод направлен в терминал
Эти параметры задают способ заполнения таблицы (по умолчанию —
column). Если не заданы ниalways, ниnever, ниauto, задание любого из этих параметров подразумеваетalways.-
column -
сначала заполнять столбцы, затем строки
-
row -
сначала заполнять строки, затем столбцы
-
plain -
выводить в один столбец
Наконец, эти параметры можно сочетать с параметром компоновки (по умолчанию —
nodense):-
dense -
использовать столбцы разной ширины, чтобы эффективнее задействовать пространство
-
nodense -
использовать столбцы одинаковой ширины
-
- column.branch
-
Указывает, следует ли выводить список ветвей команды
gitbranchв несколько столбцов. Подробности см. вcolumn.ui. - column.clean
-
Задаёт способ компоновки списка элементов команды
gitclean-i, которая всегда выводит файлы и каталоги в несколько столбцов. Подробности см. вcolumn.ui. - column.status
-
Указывает, следует ли выводить неотслеживаемые файлы команды
gitstatusв несколько столбцов. Подробности см. вcolumn.ui. - column.tag
-
Указывает, следует ли выводить список тегов команды
gittagв несколько столбцов. Подробности см. вcolumn.ui.
-
commit.cleanup -
Этот параметр переопределяет значение по умолчанию для параметра
--cleanupвgitcommit. Подробности см. в git-commit[1]. Изменение значения по умолчанию может быть полезно, если вы всегда хотите сохранять в сообщении журнала строки, начинающиеся с символа комментария (core.commentChar, по умолчанию#); в этом случае следует указатьgitconfigcommit.cleanupwhitespace(обратите внимание: если вы так поступите, строки справки, начинающиеся с символа комментария, потребуется удалить из шаблона журнала коммитов самостоятельно). -
commit.gpgSign -
Логическое значение, указывающее, следует ли подписывать все коммиты с помощью GPG. Использование этого параметра при выполнении таких операций, как перебазирование, может привести к подписанию большого количества коммитов. Чтобы не вводить парольную фразу GPG несколько раз, можно использовать агент.
-
commit.status -
Логическое значение, включающее или отключающее добавление сведений о состоянии в шаблон сообщения коммита при подготовке сообщения в редакторе. По умолчанию —
true. -
commit.template -
Задаёт путь к файлу, который будет использоваться в качестве шаблона для новых сообщений коммитов.
-
commit.verbose -
Логическое значение или целое число, задающее уровень подробности для
gitcommit. Подробности см. в git-commit[1]. - commitGraph.generationVersion
-
Задаёт версию номеров поколений, используемую при записи или чтении файла commit-graph. Если указана версия 1, исправленные даты коммитов не будут записываться или считываться. По умолчанию — 2.
- commitGraph.maxNewFilters
-
Задаёт значение по умолчанию для параметра
--max-new-filtersкомандыgitcommit-graphwrite(см. git-commit-graph[1]). - commitGraph.changedPaths
-
Если значение равно true, команда
gitcommit-graphwriteпо умолчанию вычисляет и записывает фильтры Блума для изменённых путей, что равносильно передаче параметра--changed-paths. Если значение равно false или не задано, фильтры Блума для изменённых путей записываются во время выполненияgitcommit-graphwriteтолько в том случае, если фильтры уже есть в текущем файле commit-graph. Это соответствует поведению командыgitcommit-graphwriteпо умолчанию без параметра--[no-]changed-paths. Чтобы перезаписать файл commit-graph без фильтров, используйте параметр--no-changed-paths. Параметр командной строки--[no-]changed-pathsвсегда имеет приоритет над этой настройкой. По умолчанию не задано. - commitGraph.readChangedPaths
-
Устарел. Эквивалентен commitGraph.changedPathsVersion=-1, если значение равно true, и commitGraph.changedPathsVersion=0, если значение равно false. (Если также задан commitGraph.changedPathVersion, приоритет имеет commitGraph.changedPathsVersion.)
- commitGraph.changedPathsVersion
-
Задаёт версию фильтров Блума для изменённых путей, которые Git будет читать и записывать. Допустимые значения: -1, 0, 1 или 2. Обратите внимание: версии выше 1 могут быть несовместимы со старыми версиями Git, которые пока не поддерживают эти версии. Будьте осторожны при работе в среде с разными версиями.
По умолчанию — -1.
Если задано значение -1, Git использует версию фильтров Блума для изменённых путей, имеющуюся в репозитории, а если фильтров нет — версию 1.
Если задано значение 0, Git не считывает фильтры Блума, а при необходимости записи записывает фильтры Блума версии 1.
Если задано значение 1, Git считывает только фильтры Блума версии 1 и записывает фильтры Блума версии 1.
Если задано значение 2, Git считывает только фильтры Блума версии 2 и записывает фильтры Блума версии 2.
Дополнительные сведения см. в git-commit-graph[1].
- completion.commands
-
Этот параметр используется только git-completion.bash для добавления команд в список автодополнения или удаления их из него. Обычно автодополнение доступно только для команд porcelain и некоторых других выбранных команд. В эту переменную можно добавить другие команды, разделив их пробелами. Если поставить перед командой
-, она будет удалена из существующего списка. - core.fileMode
-
Сообщает Git, следует ли учитывать бит исполнения файлов в рабочем дереве.
Некоторые файловые системы сбрасывают бит исполнения при извлечении файла, отмеченного как исполняемый, или устанавливают его при извлечении неисполняемого файла. git-clone[1] или git-init[1] проверяют, корректно ли файловая система обрабатывает бит исполнения, и при необходимости автоматически устанавливают эту переменную.
Однако репозиторий может находиться в файловой системе, которая корректно обрабатывает режимы файлов, и при его создании этой переменной присваивается значение
true, но позднее репозиторий может стать доступен из другой среды, которая теряет режим файла (например, при экспорте ext4 через подключение CIFS или при работе с репозиторием, созданным в Cygwin, из Git for Windows или Eclipse). В таком случае может потребоваться установить для этой переменной значениеfalse. См. git-update-index[1].По умолчанию значение равно true (если core.filemode не указан в файле конфигурации).
- core.hideDotFiles
-
(Только для Windows) Если значение равно true, вновь созданные каталоги и файлы, имена которых начинаются с точки, помечаются как скрытые. Если задано значение
dotGitOnly, скрытым будет только каталог.git/, а остальные файлы, имена которых начинаются с точки, скрыты не будут. По умолчанию используется режимdotGitOnly. - core.ignoreCase
-
Внутренняя переменная, включающая различные обходные решения для улучшения работы Git в файловых системах, не чувствительных к регистру, таких как APFS, HFS+, FAT, NTFS и другие. Например, если при просмотре каталога Git ожидает файл «Makefile», но обнаруживает «makefile», он считает, что это тот же файл, и продолжает учитывать его как «Makefile».
По умолчанию значение равно false, однако git-clone[1] или git-init[1] проверяют файловую систему и при создании репозитория устанавливают core.ignoreCase в true, если это необходимо.
Для корректной работы Git полагается на правильную настройку этой переменной с учётом используемой операционной системы и файловой системы. Изменение этого значения может привести к неожиданному поведению.
- core.precomposeUnicode
-
Этот параметр используется только реализацией Git для Mac OS. Если core.precomposeUnicode=true, Git отменяет разложение Unicode в именах файлов, выполняемое Mac OS. Это полезно при совместном использовании репозитория в Mac OS и Linux или Windows. (Требуется Git for Windows версии 1.7.10 или выше либо Git под cygwin 1.7.) Если значение равно false, Git полностью прозрачно обрабатывает имена файлов, что обеспечивает обратную совместимость со старыми версиями Git.
- core.protectHFS
-
Если задано значение true, не разрешается извлекать пути, которые файловая система HFS+ сочла бы эквивалентными
.git. По умолчанию в Mac OS значение равноtrue, а в остальных системах —false. - core.protectNTFS
-
Если задано значение true, не разрешается извлекать пути, которые могут вызвать проблемы в файловой системе NTFS, например конфликтовать с короткими именами формата 8.3. По умолчанию в Windows значение равно
true, а в остальных системах —false. - core.fsmonitor
-
Если задано значение true, для этого рабочего каталога включается встроенный демон мониторинга файловой системы (git-fsmonitor--daemon[1]).
Как и мониторы файловой системы на основе хуков, встроенный монитор может ускорить команды Git, которым требуется обновить индекс Git (например,
gitstatus) в рабочем каталоге с большим количеством файлов. Встроенный монитор избавляет от необходимости устанавливать и обслуживать сторонний инструмент.В настоящее время встроенный монитор файловой системы доступен лишь на ограниченном наборе поддерживаемых платформ. Сейчас к ним относятся Windows и MacOS.
В противном случае эта переменная содержит путь к команде-хуку «fsmonitor».
Эта команда-хук используется для определения всех файлов, которые могли измениться после указанной даты и времени. Эта информация ускоряет работу Git, позволяя избежать ненужного сканирования неизменённых файлов.
См. раздел «fsmonitor-watchman» в githooks[5].
Обратите внимание: если вы одновременно используете несколько версий Git, например одну в командной строке, а другую в среде разработки, определение
core.fsmonitorбыло расширено и теперь допускает логические значения наряду с путями к хукам. Версии Git 2.35.1 и более ранние не распознают логические значения и будут считать значения «true» или «false» путями к хукам, которые следует вызвать. В версиях Git с 2.26 по 2.35.1 по умолчанию используется протокол хуков V2, а при сбое мониторинг fsmonitor отключается (выполняется полное сканирование). В версиях Git до 2.26 по умолчанию используется протокол хуков V1; они молча предполагают, что изменений для отчёта нет (сканирование не выполняется), поэтому команды проверки состояния могут выдавать неполные результаты. Поэтому перед использованием встроенного монитора файловой системы рекомендуется обновить все версии Git. - core.fsmonitorHookVersion
-
Задаёт версию протокола, используемую при вызове хука «fsmonitor».
В настоящее время доступны версии 1 и 2. Если параметр не задан, сначала проверяется версия 2, а в случае сбоя — версия 1. В версии 1 для определения файлов, изменившихся с указанного момента времени, в качестве входных данных используется временная метка, однако некоторые мониторы, например Watchman, при работе с временными метками подвержены состояниям гонки. В версии 2 используется непрозрачная строка, позволяющая монитору возвращать данные для определения изменившихся файлов без состояний гонки.
- core.trustctime
-
Если значение равно false, различия ctime между индексом и рабочим деревом игнорируются; это полезно, когда время изменения inode регулярно меняется по причинам, не связанным с Git (например, из-за сканеров файловой системы или некоторых систем резервного копирования). См. git-update-index[1]. По умолчанию значение равно true.
- core.splitIndex
-
Если значение равно true, используется функция разделённого индекса. См. git-update-index[1]. По умолчанию значение равно false.
- core.untrackedCache
-
Определяет, что делать с кэшем неотслеживаемых файлов в индексе. Если эта переменная не задана или имеет значение
keep, кэш сохраняется. Если задано значениеtrue, кэш будет автоматически добавлен. Если задано значениеfalse, кэш будет автоматически удалён. Прежде чем задать значениеtrue, убедитесь, что mtime в вашей системе работает правильно. См. git-update-index[1]. По умолчанию используется значениеkeep, если только не включён параметрfeature.manyFiles, который по умолчанию устанавливает для этой настройки значениеtrue. - core.checkStat
-
Если значение не задано или равно
default, проверяется множество полей структуры stat, чтобы определить, изменился ли файл с момента последнего обращения к нему Git. Если для этой переменной конфигурации задано значениеminimal, при проверке исключаются доли секунды в mtime и ctime, uid и gid владельца файла, номер inode (а также номер устройства, если Git был собран с его использованием); проверяются только целые секунды mtime (и ctime, если задано значениеcore.trustCtime) и размер файла.Некоторые реализации Git не оставляют пригодных для использования значений в отдельных полях (например, JGit); исключение этих полей из сравнения в режиме
minimalможет улучшить совместимость, если один и тот же репозиторий одновременно используется этими системами. - core.quotePath
-
Команды, выводящие пути (например,
ls-files,diff), заключают «необычные» символы в имени пути в двойные кавычки и экранируют их обратными косыми чертами так же, как в языке C экранируются управляющие символы (например, \t для TAB, \n для LF, \\ для обратной косой черты), а также байты со значениями выше 0x80 (например, восьмеричная последовательность \302\265 для символа «микро» в UTF-8). Если для этой переменной задано значение false, байты выше 0x80 больше не считаются «необычными». Двойные кавычки, обратная косая черта и управляющие символы экранируются независимо от значения этой переменной. Обычный пробел не считается «необычным». Многие команды могут выводить имена путей без изменений с помощью параметра-z. По умолчанию значение равно true. - core.eol
-
Задаёт тип окончания строк, используемый в рабочем каталоге для файлов, помеченных как текстовые (либо атрибутом
text, либо параметромtext=auto, если Git автоматически распознаёт содержимое как текст). Допустимые значения:lf,crlfиnative; последнее использует окончания строк, принятые на данной платформе. По умолчанию используется значениеnative. Дополнительные сведения о преобразовании окончаний строк см. в gitattributes[5]. Обратите внимание: это значение игнорируется, если дляcore.autocrlfзадано значениеtrueилиinput. - core.safecrlf
-
Если значение равно true, Git проверяет, обратимо ли преобразование
CRLFпри включённом преобразовании окончаний строк. Git проверяет, изменяет ли команда файл в рабочем дереве прямо или косвенно. Например, после фиксации файла его извлечение должно восстановить исходный файл в рабочем дереве. Если при текущем значенииcore.autocrlfэто невозможно, Git отклонит файл. Переменной можно присвоить значение «warn»; в этом случае Git лишь предупредит о необратимом преобразовании, но продолжит операцию.Преобразование CRLF сопряжено с небольшим риском повреждения данных. Если оно включено, Git преобразует CRLF в LF при фиксации и LF в CRLF при извлечении. Файл, содержащий смесь LF и CRLF до фиксации, не может быть восстановлен Git. Для текстовых файлов это правильное поведение: окончания строк исправляются так, чтобы в репозитории использовались только LF. Однако для двоичных файлов, ошибочно классифицированных как текстовые, преобразование может повредить данные.
Если вы рано обнаружили такое повреждение, его легко исправить, явно задав тип преобразования в .gitattributes. Сразу после фиксации исходный файл всё ещё находится в рабочем дереве и ещё не повреждён. Можно явно указать Git, что этот файл является двоичным, и Git будет обрабатывать его соответствующим образом.
К сожалению, невозможно отличить желаемый результат очистки текстовых файлов со смешанными окончаниями строк от нежелательного повреждения двоичных файлов. В обоих случаях CRLF удаляются необратимым образом. Для текстовых файлов это правильно, поскольку CRLF — окончания строк, а преобразование CRLF в двоичных файлах повреждает данные.
Обратите внимание: эта проверка безопасности не гарантирует, что извлечение создаст файл, идентичный исходному, при других значениях
core.eolиcore.autocrlf; гарантия действует только для текущих значений. Например, текстовый файл сLFбудет принят при значенииcore.eol=lf, а позднее может быть извлечён при значенииcore.eol=crlf; в этом случае полученный файл будет содержатьCRLF, хотя исходный файл содержалLF. Однако в обоих рабочих деревьях окончания строк будут согласованными: либо всеLF, либо всеCRLF, но никогда не смешанными. Файл со смешанными окончаниями строк будет обнаружен механизмомcore.safecrlf. - core.autocrlf
-
Установка для этой переменной значения «true» равносильна установке атрибута
textв значение «auto» для всех файлов и установке core.eol в значение «crlf». Задайте значение true, если в рабочем каталоге вы хотите использовать окончания строкCRLF, а в репозитории используются LF. Этой переменной можно присвоить значениеinput; в этом случае преобразование при выводе не выполняется. - core.checkRoundtripEncoding
-
Список кодировок, разделённых запятыми и/или пробелами, для которых Git выполняет проверку обратного преобразования UTF-8, если они указаны в атрибуте
working-tree-encoding(см. gitattributes[5]). По умолчанию используется значениеSHIFT-JIS. - core.symlinks
-
Если значение равно false, символические ссылки извлекаются в виде небольших обычных файлов, содержащих текст ссылки. git-update-index[1] и git-add[1] не будут менять записанный тип на обычный файл. Полезно для файловых систем, таких как FAT, которые не поддерживают символические ссылки.
По умолчанию значение равно true, однако git-clone[1] или git-init[1] проверяют файловую систему и при создании репозитория устанавливают core.symlinks в false, если это необходимо.
- core.gitProxy
-
«Прокси-команда», запускаемая (как
command host port) вместо прямого подключения к удалённому серверу при получении данных по протоколу Git. Если значение переменной задано в формате «КОМАНДА для ДОМЕНА», команда применяется только к именам хостов, заканчивающимся указанной строкой домена. Эту переменную можно задавать несколько раз; значения проверяются в указанном порядке, и используется первое совпавшее.Переопределяется переменной окружения
GIT_PROXY_COMMAND(которая всегда применяется ко всем доменам без особой обработки «для»).Специальную строку
noneможно использовать в качестве прокси-команды, чтобы указать, что для данного шаблона домена прокси использовать не следует. Это удобно, если нужно исключить серверы внутри межсетевого экрана из использования прокси, сохранив общий прокси по умолчанию для внешних доменов. - core.sshCommand
-
Если эта переменная задана, команды
gitfetchиgitpushбудут использовать указанную команду вместоsshпри подключении к удалённой системе. Команда задаётся в том же формате, что и переменная окруженияGIT_SSH_COMMAND, и переопределяется, если эта переменная окружения задана. - core.ignoreStat
-
Если значение равно true, Git не будет использовать вызовы lstat() для обнаружения изменений файлов, устанавливая бит «assume-unchanged» для отслеживаемых файлов, которые он одинаково обновил и в индексе, и в рабочем дереве.
Если файлы изменяются вне Git, пользователь должен будет явно подготовить изменённые файлы (например, см. раздел
Examplesв git-update-index[1]). Обычно Git не обнаруживает изменения таких файлов.Это полезно в системах, где вызовы lstat() выполняются очень медленно, например CIFS/Microsoft Windows.
По умолчанию значение равно false.
- core.preferSymlinkRefs
-
Вместо используемого по умолчанию формата «symref» для HEAD и других файлов символических ссылок на ссылки использовать символические ссылки файловой системы. Иногда это требуется для работы со старыми скриптами, которые ожидают, что HEAD будет символической ссылкой.
Эта настройка устарела и будет удалена в Git 3.0. Символические ссылки на ссылки всегда будут записываться в виде текстовых symref.
- core.alternateRefsCommand
-
При объявлении указателей доступной истории из альтернативного репозитория используйте указанную команду оболочки вместо git-for-each-ref[1]. Первый аргумент — абсолютный путь к альтернативному репозиторию. Вывод должен содержать по одному шестнадцатеричному идентификатору объекта в каждой строке (то есть такой же, как вывод
gitfor-each-ref--format='%(objectname)).Обратите внимание: обычно нельзя напрямую поместить
gitfor-each-refв значение конфигурации, поскольку эта команда не принимает путь к репозиторию в качестве аргумента (однако приведённую выше команду можно обернуть в скрипт оболочки). - core.alternateRefsPrefixes
-
При выводе ссылок из альтернативного репозитория выводить только ссылки, начинающиеся с указанного префикса. Префиксы сопоставляются так же, как если бы они были переданы в качестве аргументов git-for-each-ref[1]. Чтобы указать несколько префиксов, разделите их пробелами. Если задан параметр
core.alternateRefsCommand, настройкаcore.alternateRefsPrefixesне действует. - core.bare
-
Если значение равно true, предполагается, что этот репозиторий является
bareи не связан с рабочим каталогом. В этом случае ряд команд, которым требуется рабочий каталог, будет отключён, например git-add[1] или git-merge[1].При создании репозитория это значение автоматически определяется командами git-clone[1] или git-init[1]. По умолчанию репозиторий, путь к которому оканчивается на «/.git», считается непустым (bare = false), а все остальные репозитории считаются пустыми (bare = true).
- core.worktree
-
Задаёт путь к корню рабочего дерева. Если задана переменная окружения
GIT_COMMON_DIR, core.worktree игнорируется и не используется для определения корня рабочего дерева. Это значение можно переопределить переменной окруженияGIT_WORK_TREEи параметром командной строки--work-tree. Значение может быть абсолютным путём или путём относительно каталога .git, заданного с помощью --git-dir или GIT_DIR либо обнаруженного автоматически. Если задан --git-dir или GIT_DIR, но не заданы --work-tree, GIT_WORK_TREE и core.worktree, текущий рабочий каталог считается корнем рабочего дерева.Обратите внимание: эта переменная учитывается, даже если она задана в файле конфигурации в подкаталоге «.git» каталога, а её значение отличается от пути к этому каталогу (например, в «/path/to/.git/config» для core.worktree указано «/different/path»); скорее всего, это ошибка конфигурации. При запуске команд Git в каталоге «/path/to» корнем рабочего дерева по-прежнему будет считаться «/different/path», что может привести к путанице, если вы не знаете, что делаете (например, создаёте в другом месте снимок того же индекса, доступный только для чтения, вместо обычного рабочего дерева репозитория).
- core.lockfilePid
-
Если значение равно true, Git будет создавать PID-файл рядом с файлами блокировки. Если не удаётся получить блокировку и существует PID-файл, Git может предоставить дополнительные диагностические сведения о процессе, удерживающем блокировку, в том числе о том, продолжает ли он работать. По умолчанию —
false.Имя PID-файла образуется вставкой
~pidперед суффиксом.lock. Например, если файл блокировки называетсяindex.lock, PID-файл будет называтьсяindex~pid.lock. Файл содержит одну строку в форматеpid<value>, за которой следует символ новой строки. - core.logAllRefUpdates
-
Включает журнал ссылок (reflog). Обновления ссылки <ref> записываются в файл «
$GIT_DIR/logs/<ref>»: в него добавляются новые и старые SHA-1, дата и время, а также причина обновления, но только если файл существует. Если для этой переменной конфигурации задано значениеtrue, отсутствующий файл «$GIT_DIR/logs/<ref>» автоматически создаётся для вершин веток (то есть вrefs/heads/), удалённых ссылок (то есть вrefs/remotes/), ссылок на заметки (то есть вrefs/notes/) и символической ссылкиHEAD. Если задано значениеalways, отсутствующий журнал ссылок автоматически создаётся для любой ссылки вrefs/.Эти сведения можно использовать, чтобы определить, какой коммит был вершиной ветки «2 дня назад».
По умолчанию значение равно true в репозитории, связанном с рабочим каталогом, и false в пустом репозитории.
- core.repositoryFormatVersion
-
Внутренняя переменная, определяющая формат репозитория и версию его структуры. См. gitrepository-layout[5].
-
При
group(илиtrue) репозиторий становится общим для нескольких пользователей в группе (все файлы и объекты становятся доступными для записи группе). Приall(илиworldилиeverybody) репозиторий будет доступен для чтения всем пользователям, а также общим для группы. Приumask(илиfalse) Git будет использовать права доступа, сообщённые umask(2). При0xxx, где0xxx— восьмеричное число, файлы в репозитории будут иметь это значение режима доступа.0xxxпереопределит значение umask пользователя (в то время как остальные параметры переопределяют только запрошенные части значения umask пользователя). Примеры:0660сделает репозиторий доступным для чтения и записи владельцу и группе, но недоступным для остальных (эквивалентноgroup, если, например, umask равен0022).0640— это репозиторий, доступный группе для чтения, но не для записи. См. git-init[1]. По умолчанию — false. - core.warnAmbiguousRefs
-
Если значение равно true, Git предупредит вас, если переданное имя ссылки неоднозначно и может соответствовать нескольким ссылкам в репозитории. По умолчанию — true.
- core.compression
-
Целое число от -1 до 9, задающее уровень сжатия по умолчанию. -1 — значение zlib по умолчанию. 0 означает отсутствие сжатия, а значения от 1 до 9 задают различные компромиссы между скоростью и размером; 9 — самое медленное. Если параметр задан, он служит значением по умолчанию для других переменных сжатия, таких как
core.looseCompressionиpack.compression. - core.looseCompression
-
Целое число от -1 до 9, задающее уровень сжатия объектов, не входящих в pack-файл. -1 — значение zlib по умолчанию. 0 означает отсутствие сжатия, а значения от 1 до 9 задают различные компромиссы между скоростью и размером; 9 — самое медленное. Если параметр не задан, используется значение core.compression. Если и оно не задано, используется 1 (максимальная скорость).
- core.packedGitWindowSize
-
Количество байтов pack-файла, отображаемых в память за одну операцию отображения. Больший размер окна может позволить системе быстрее обрабатывать меньшее количество больших pack-файлов. Меньший размер окна отрицательно влияет на производительность из-за увеличения числа обращений к менеджеру памяти операционной системы, но может улучшить производительность при доступе к большому количеству больших pack-файлов.
По умолчанию — 1 MiB, если при компиляции был задан NO_MMAP; в противном случае — 32 MiB на 32-разрядных платформах и 1 GiB на 64-разрядных платформах. Это значение должно подходить всем пользователям и операционным системам. Скорее всего, корректировать его не потребуется.
Поддерживаются распространённые суффиксы единиц измерения:
k,mилиg. - core.packedGitLimit
-
Максимальное количество байтов из pack-файлов, одновременно отображаемых в память. Если для выполнения операции Git потребуется обратиться одновременно к большему объёму данных, он отменит отображение уже существующих областей, чтобы освободить виртуальное адресное пространство процесса.
По умолчанию — 256 MiB на 32-разрядных платформах и 32 TiB (фактически без ограничений) на 64-разрядных платформах. Это значение должно подходить всем пользователям и операционным системам, за исключением самых крупных проектов. Скорее всего, корректировать его не потребуется.
Поддерживаются распространённые суффиксы единиц измерения:
k,mилиg. - core.deltaBaseCacheLimit
-
Максимальное количество байтов на поток, выделяемое для кэширования базовых объектов, на которые могут ссылаться несколько объектов в дельта-формате. Храня в кэше целиком распакованные базовые объекты, Git может избежать повторной распаковки часто используемых базовых объектов.
По умолчанию — 96 MiB на всех платформах. Это значение должно подходить всем пользователям и операционным системам, за исключением самых крупных проектов. Скорее всего, корректировать его не потребуется.
Поддерживаются распространённые суффиксы единиц измерения:
k,mилиg. - core.bigFileThreshold
-
Размер файлов, считающихся «большими». Как описано ниже, это меняет поведение множества команд Git, а также способ хранения таких файлов в репозитории. Значение по умолчанию — 512 MiB. Поддерживаются распространённые суффиксы единиц измерения:
k,mилиg.Файлы, размер которых превышает заданный предел:
-
Сохраняются в pack-файлах в сжатом виде, без попытки сжатия дельт.
Предел по умолчанию выбран прежде всего с учётом этого варианта использования. Благодаря ему в большинстве проектов исходный код и другие текстовые файлы сжимаются в виде дельт, а крупные двоичные медиафайлы — нет.
Хранение больших файлов без сжатия дельт позволяет избежать чрезмерного использования памяти ценой небольшого увеличения занимаемого на диске места.
-
Считаются помеченными как «двоичные» (см. gitattributes[5]). Например, git-log[1] и git-diff[1] не будут вычислять различия для файлов, размер которых превышает этот предел.
-
Как правило, записываются потоково, что позволяет избежать чрезмерного использования памяти ценой некоторых постоянных накладных расходов. Это делают, в частности, команды git-archive[1], git-fast-import[1], git-index-pack[1], git-unpack-objects[1] и git-fsck[1].
-
- core.excludesFile
-
Задаёт путь к файлу, содержащему шаблоны для описания путей, которые не следует отслеживать, в дополнение к
.gitignore(для каждого каталога) и.git/info/exclude. По умолчанию используется$XDG_CONFIG_HOME/git/ignore. Если$XDG_CONFIG_HOMEне задана или пуста, вместо неё используется$HOME/.config/git/ignore. См. gitignore[5]. - core.askPass
-
Некоторым командам (например, интерфейсам svn и http), которые интерактивно запрашивают пароль, можно указать использовать внешнюю программу, заданную значением этой переменной. Её можно переопределить переменной среды
GIT_ASKPASS. Если переменная не задана, используется значение переменной средыSSH_ASKPASS, а если оно отсутствует — простой запрос пароля. Внешней программе передаётся подходящий запрос в качестве аргумента командной строки, а пароль она должна вывести в STDOUT. - core.attributesFile
-
Задаёт путь к файлу с атрибутами (см. gitattributes[5]) в дополнение к
.gitattributes(для каждого каталога) и.git/info/attributes. Значение по умолчанию —$XDG_CONFIG_HOME/git/attributes. Если$XDG_CONFIG_HOMEне задана или пуста, вместо неё используется$HOME/.config/git/attributes. - core.hooksPath
-
По умолчанию Git ищет хуки в каталоге
$GIT_DIR/hooks. Укажите здесь другой путь, например/etc/git/hooks, и Git будет искать хуки в этом каталоге, например/etc/git/hooks/pre-receiveвместо$GIT_DIR/hooks/pre-receive.Путь может быть абсолютным или относительным. Относительный путь отсчитывается от каталога, в котором запускаются хуки (см. раздел «DESCRIPTION» в githooks[5]).
Эта переменная конфигурации полезна, если вы хотите централизованно настраивать хуки Git, а не задавать их отдельно для каждого репозитория, либо использовать более гибкую централизованную альтернативу каталогу
init.templateDir, в котором изменены хуки по умолчанию.Также можно полностью отключить все хуки, задав для
core.hooksPathзначение/dev/null. Обычно это рекомендуется только опытным пользователям и для отдельных команд, с помощью параметров конфигурации видаgit-ccore.hooksPath=/dev/null.... - core.editor
-
Команды вроде
commitиtag, позволяющие редактировать сообщения с помощью запуска редактора, используют значение этой переменной, если она задана, а переменная средыGIT_EDITORне задана. См. git-var[1]. - core.commentChar
- core.commentString
-
Команды вроде
commitиtag, позволяющие редактировать сообщения, считают строку комментарием, если она начинается с этого символа, и удаляют такие строки после завершения работы редактора (по умолчанию#).Если задано значение "auto",
git-commitвыберет символ, с которого не начинается ни одна строка в существующих сообщениях коммитов. Поддержка этого значения считается устаревшей и будет удалена в Git 3.0 из-за следующих ограничений:-
Несовместимо с добавлением комментариев в шаблон сообщения коммита. Сюда входят комментарии о конфликтах, добавляемые в сообщение коммита командами
cherry-pick,merge,rebaseиrevert. -
Несовместимо с добавлением комментариев в сообщение коммита в хуке
prepare-commit-msg. -
Несовместимо с командами
fixupиsquashпри перебазировании. -
Не учитывается командой
gitnotes.
Обратите внимание, что эти две переменные являются псевдонимами друг друга, и в современных версиях Git можно использовать со значением
commentCharстроку (например,//или ⁑⁕⁑). Версии Git до v2.45.0 игнорируютcommentString, но отклоняют значениеcommentChar, состоящее более чем из одного байта ASCII. Если вы планируете использовать конфигурацию со старыми и новыми версиями Git, можно задать оба параметра:[core] # single character for older versions commentChar = "#" # string for newer versions (which will override commentChar # because it comes later in the file) commentString = "//"
-
- core.filesRefLockTimeout
-
Время в миллисекундах, в течение которого следует повторять попытки блокировки отдельной ссылки. Значение 0 означает, что повторных попыток не будет; -1 — что попытки будут повторяться бесконечно. По умолчанию — 100 (то есть повторные попытки в течение 100 мс).
- core.packedRefsTimeout
-
Время в миллисекундах, в течение которого следует повторять попытки блокировки файла
packed-refs. Значение 0 означает, что повторных попыток не будет; -1 — что попытки будут повторяться бесконечно. По умолчанию — 1000 (то есть повторные попытки в течение 1 секунды). - core.pager
-
Программа просмотра текста для команд Git (например,
less). Значение обрабатывается оболочкой. Приоритет выбора: переменная среды$GIT_PAGER, затем настройкаcore.pager, затем$PAGERи, наконец, значение по умолчанию, выбранное при компиляции (обычноless).Если переменная среды
LESSне задана, Git устанавливает её вFRX(если задана переменная средыLESS, Git не меняет её). Чтобы выборочно переопределить настройкуLESSпо умолчанию, можно задать дляcore.pager, например, значениеless-S. Git передаст его оболочке, которая преобразует итоговую команду вLESS=FRXless-S. В среде параметрSне задан, но он передаётся в командной строке и указывает less обрезать длинные строки. Аналогично, задание дляcore.pagerзначенияless-+Fотключит в командной строке параметрF, заданный в среде, и деактивирует поведениеless«выходить, если помещается на одном экране». Можно включать определённые флаги только для отдельных команд: например, задание дляpager.blameзначенияless-Sвключает обрезку строк только дляgitblame.Аналогично, если переменная среды
LVне задана, Git устанавливает её в-c. Это значение можно переопределить, экспортировавLVс другим значением или задав дляcore.pagerзначениеlv+c. - core.whitespace
-
Список распространённых проблем с пробельными символами, разделённых запятыми, на которые следует обращать внимание.
git diffбудет использоватьcolor.diff.whitespaceдля их выделения, аgit apply --whitespace=errorбудет считать их ошибками. Чтобы отключить любой из параметров, перед ним можно указать-(например,-trailing-space):-
blank-at-eolсчитает завершающие пробелы в конце строки ошибкой (включено по умолчанию). -
space-before-tabсчитает ошибкой пробел, непосредственно перед которым в начальном отступе строки стоит символ табуляции (включено по умолчанию). -
indent-with-non-tabсчитает ошибкой отступ строки пробелами вместо эквивалентных символов табуляции (по умолчанию выключено). -
tab-in-indentсчитает символ табуляции в начальном отступе строки ошибкой (по умолчанию выключено). -
blank-at-eofсчитает ошибкой пустые строки, добавленные в конец файла (включено по умолчанию). -
trailing-space— это сокращённая запись, объединяющаяblank-at-eolиblank-at-eof. -
cr-at-eolсчитает символ возврата каретки в конце строки частью её завершителя; то есть при включённом параметреtrailing-spaceне срабатывает, если символ перед таким возвратом каретки не является пробельным (по умолчанию выключено). -
incomplete-lineсчитает ошибкой последнюю строку файла, если в конце отсутствует символ новой строки (по умолчанию выключено). -
tabwidth=<n> задаёт количество позиций символов, занимаемых символом табуляции; это имеет значение дляindent-with-non-tabи при исправлении Git ошибокtab-in-indent. Ширина табуляции по умолчанию — 8. Допустимые значения — от 1 до 63.
-
- core.fsync
-
Список компонентов репозитория, разделённых запятыми, которые следует защитить с помощью core.fsyncMethod при создании или изменении. Чтобы отключить защиту компонента, добавьте перед ним
-. Незащищённые компоненты могут быть потеряны при некорректном завершении работы системы. Если у вас нет особых требований, рекомендуется оставить этот параметр пустым или выбрать одно из значений:committed,addedилиall.При обработке этой настройки набор компонентов начинается со значения по умолчанию для платформы; отключённые компоненты удаляются, а дополнительные добавляются.
noneсбрасывает состояние, игнорируя значение по умолчанию для платформы.Пустая строка сбрасывает конфигурацию fsync до значения по умолчанию для платформы. На большинстве платформ значение по умолчанию эквивалентно
core.fsync=committed,-loose-object: оно обеспечивает хорошую производительность, но при некорректном завершении работы системы есть риск потери последних изменений.-
noneочищает набор синхронизируемых компонентов. -
loose-objectзащищает объекты, добавленные в репозиторий в виде отдельных объектов. -
packзащищает объекты, добавленные в репозиторий в виде pack-файла. -
pack-metadataзащищает битовые карты и индексы pack-файлов. -
commit-graphзащищает файл графа коммитов. -
indexзащищает индекс при его изменении. -
objects— агрегированный параметр, эквивалентныйloose-object,pack. -
referenceзащищает ссылки, изменённые в репозитории. -
derived-metadata— агрегированный параметр, эквивалентныйpack-metadata,commit-graph. -
committed— агрегированный параметр, в настоящее время эквивалентныйobjects. Этот режим снижает производительность, чтобы гарантировать защиту изменений, зафиксированных в репозитории с помощьюgitcommitи подобных команд. -
added— агрегированный параметр, в настоящее время эквивалентныйcommitted,index. Этот режим ещё сильнее снижает производительность, чтобы гарантировать защиту результатов таких команд, какgitadd, и подобных операций. -
all— агрегированный параметр, выполняющий синхронизацию всех перечисленных выше отдельных компонентов.
-
- core.fsyncMethod
-
Значение, указывающее стратегию, которую Git будет использовать для защиты данных репозитория с помощью fsync и связанных примитивов.
-
fsyncиспользует системный вызов fsync() или его аналог на платформе. -
writeout-onlyотправляет запросы на запись страниц кэша, но в зависимости от файловой системы и оборудования хранения данные, добавленные в репозиторий, могут не сохраниться при сбое системы. Это режим по умолчанию в macOS. -
batchвключает режим, в котором для подготовки нескольких обновлений в кэше обратной записи на диск используется только сброс с записью, а в конце операции выполняется полный fsync фиктивного файла, чтобы инициировать сброс кэша диска.В настоящее время режим
batchприменяется только к файлам отдельных объектов. Остальные данные репозитория сохраняются так же надёжно, как если бы был указан параметрfsync. Ожидается, что этот режим столь же безопасен, какfsync, для репозиториев в macOS, хранящихся в файловых системах HFS+ или APFS, и в Windows — в файловых системах NTFS или ReFS.
-
- core.fsyncObjectFiles
-
Этот логический параметр включает
fsync()при записи файлов объектов. Настройка устарела. Вместо неё используйте core.fsync.Эта настройка влияет на данные, добавляемые в репозиторий Git в виде отдельных объектов. Если значение равно true, Git выполнит fsync или аналогичный системный вызов для сброса кэшей, чтобы отдельные объекты сохраняли целостность при некорректном завершении работы системы.
- core.preloadIndex
-
Включает параллельную предварительную загрузку индекса для таких операций, как
git diffЭто может ускорить такие операции, как
git diffиgit status, особенно в файловых системах вроде NFS, для которых характерно слабое кэширование и, следовательно, относительно высокая задержка операций ввода-вывода. Если параметр включён, Git будет параллельно сравнивать индекс с данными файловой системы, позволяя выполнять операции ввода-вывода одновременно. По умолчанию — true. - core.unsetenvvars
-
Только для Windows: список имён переменных среды, разделённых запятыми, которые необходимо удалить перед запуском любого другого процесса. По умолчанию —
PERL5LIB, поскольку Git for Windows настаивает на использовании собственного интерпретатора Perl. - core.createObject
-
Можно задать значение
link; в этом случае для гарантии того, что создание объекта не перезапишет существующие объекты, создаётся жёсткая ссылка, а затем удаляется исходный файл.В некоторых сочетаниях файловой системы и операционной системы этот способ ненадёжен. В таких случаях задайте для этой настройки значение
rename; однако это отключит проверку, гарантирующую, что существующие файлы объектов не будут перезаписаны. - core.notesRef
-
При отображении сообщений коммитов также показывать заметки, хранящиеся в указанной ссылке. Ссылка должна быть полностью квалифицированной. Если указанная ссылка не существует, это не считается ошибкой, а означает, что заметки выводить не нужно.
По умолчанию используется "refs/notes/commits"; значение можно переопределить переменной среды
GIT_NOTES_REF. См. git-notes[1]. - core.commitGraph
-
Если значение равно true, Git будет читать файл графа коммитов (если он существует), чтобы разобрать структуру графа коммитов. По умолчанию — true. Дополнительные сведения см. в git-commit-graph[1].
- core.useReplaceRefs
-
Если задано значение
false, ведёт себя так, как если бы в командной строке был указан параметр--no-replace-objects. Дополнительные сведения см. в git[1] и git-replace[1]. - core.multiPackIndex
-
Использовать файл multi-pack-index для отслеживания нескольких pack-файлов с помощью одного индекса. Дополнительные сведения см. в git-multi-pack-index[1]. По умолчанию — true.
- core.sparseCheckout
-
Включить функцию «разреженной выгрузки». Дополнительные сведения см. в git-sparse-checkout[1].
- core.sparseCheckoutCone
-
Включает «конический режим» функции разреженной выгрузки. Если файл sparse-checkout содержит ограниченный набор шаблонов, этот режим обеспечивает значительный прирост производительности. Чтобы использовать «неконический режим» и задавать более гибкие шаблоны, присвойте этой переменной значение
false. Дополнительные сведения см. в git-sparse-checkout[1]. - core.abbrev
-
Задаёт длину сокращённых имён объектов. Если значение не задано или равно "auto", подходящая длина вычисляется исходя из приблизительного количества упакованных объектов в репозитории; предполагается, что её будет достаточно, чтобы сокращённые имена объектов оставались уникальными некоторое время. Если значение равно "no", сокращение не выполняется и имена объектов выводятся полностью. Минимальная длина — 4.
- core.maxTreeDepth
-
Максимальная глубина рекурсивного обхода дерева, допустимая для Git (например, глубина "a/b/cde/f" равна 4). Это предохранительный механизм, позволяющий Git корректно прервать операцию; обычно менять это значение не требуется. При компиляции Git с помощью MSVC значение по умолчанию — 512. В остальных случаях — 2048.
- credential.helper
-
Указывает внешнюю вспомогательную программу, которую следует вызвать, когда требуются учётные данные — имя пользователя или пароль; программа может обращаться к внешнему хранилищу, чтобы не запрашивать учётные данные у пользователя. Обычно это имя вспомогательной программы для учётных данных с возможными аргументами, но также может быть абсолютный путь с аргументами или, если перед ним указано
!, команды оболочки.Обратите внимание, что можно задать несколько вспомогательных программ. Подробности и примеры см. в gitcredentials[7].
- credential.interactive
-
По умолчанию Git и настроенные вспомогательные программы для работы с учётными данными запрашивают данные у пользователя, если требуются новые учётные данные. Многие из этих программ могут использовать сохранённые учётные данные, если они ещё действительны. Чтобы исключить интерактивные запросы со стороны Git, задайте
credential.interactive=false. Некоторые вспомогательные программы для работы с учётными данными также учитывают этот параметр. - credential.useHttpPath
-
При получении учётных данных считать компонент "path" URL-адреса http или https значимым. По умолчанию — false. Дополнительные сведения см. в gitcredentials[7].
- credential.sanitizePrompt
-
По умолчанию в именах пользователей и узлов, отображаемых в запросе пароля, не допускаются управляющие символы (по умолчанию они кодируются в формате URL). Чтобы изменить это поведение, задайте для этого параметра значение
false. - credential.protectProtocol
-
По умолчанию в протоколе, используемом Git при взаимодействии со вспомогательной программой для работы с учётными данными, не допускаются символы возврата каретки. Эта настройка позволяет переопределить значение по умолчанию.
- credential.username
-
Если для сетевой аутентификации не задано имя пользователя, использовать это имя по умолчанию. См. credential.<context>.* ниже и gitcredentials[7].
- credential.<url>.*
-
Любые из перечисленных выше параметров credential.* можно применять выборочно к отдельным учётным данным. Например, параметр "credential.https://example.com.username" задаёт имя пользователя по умолчанию только для подключений по https к example.com. Подробности о сопоставлении URL-адресов см. в gitcredentials[7].
- credentialCache.ignoreSIGHUP
-
Указывает git-credential-cache—daemon игнорировать SIGHUP, а не завершать работу.
- credentialStore.lockTimeoutMS
-
Время в миллисекундах, в течение которого git-credential-store повторяет попытки при блокировке файла учётных данных. Значение 0 означает, что повторные попытки не выполняются; -1 означает, что попытки выполняются бесконечно. Значение по умолчанию — 1000 (то есть повторять попытки в течение 1 с).
-
diff.autoRefreshIndex -
При использовании
gitdiffдля сравнения с файлами рабочего дерева не считать изменениями изменения только в stat. Вместо этого незаметно выполнятьgitupdate-index--refresh, чтобы обновлять кэшированную информацию stat для путей, содержимое которых в рабочем дереве совпадает с содержимым в индексе. По умолчанию этот параметр имеет значениеtrue. Обратите внимание: это влияет только на Porcelain-командыgitdiff, но не на низкоуровневые командыdiff, такие какgitdiff-files. -
diff.dirstat -
Разделённый запятыми список параметров
--dirstat, задающих поведение по умолчанию параметра--dirstatдля git-diff[1] и подобных команд. Значения по умолчанию можно переопределить в командной строке (с помощью--dirstat=<param>,...). Резервные значения по умолчанию (если они не изменены параметромdiff.dirstat) —changes,noncumulative,3. Доступны следующие параметры:-
changes -
Вычислять значения dirstat, подсчитывая строки, удалённые из исходного файла или добавленные в целевой. При этом не учитывается объём перемещения фрагментов кода внутри файла. Другими словами, перестановка строк в файле учитывается меньше, чем остальные изменения. Это поведение по умолчанию, если параметр не указан.
-
lines -
Вычислять значения dirstat с помощью обычного построчного анализа diff и суммировать количество удалённых и добавленных строк. (Для бинарных файлов вместо этого подсчитываются блоки по 64 байта, поскольку у бинарных файлов нет естественного понятия строк.) Это поведение
--dirstatтребует больше вычислительных ресурсов, чем поведениеchanges, но учитывает переставленные строки внутри файла так же, как и остальные изменения. Результат согласуется с выводом, получаемым при использовании других параметров--*stat. -
files -
Вычислять значения dirstat, подсчитывая количество изменённых файлов. В анализе dirstat каждый изменённый файл имеет одинаковый вес. Это поведение
--dirstatтребует наименьших вычислительных ресурсов, поскольку содержимое файлов вообще не анализируется. -
cumulative -
Учитывать изменения во вложенном каталоге также и для родительского каталога. Обратите внимание: при использовании
cumulativeсумма указанных процентов может превышать 100%. Поведение по умолчанию (без накопления) можно задать параметромnoncumulative. - <limit>
-
Целочисленный параметр задаёт процентный порог (по умолчанию 3%). Каталоги, на долю которых приходится меньше этого процента изменений, не отображаются в выводе.
Пример: следующая команда подсчитает изменённые файлы, игнорируя каталоги, на которые приходится менее 10% от общего количества изменённых файлов, и суммируя количество изменений во вложенных каталогах для родительских каталогов:
files,10,cumulative. -
-
diff.statNameWidth -
Ограничить ширину части с именем файла в выводе
--stat. Если задан, параметр применяется ко всем командам, формирующим вывод--stat, кромеformat-patch. -
diff.statGraphWidth -
Ограничить ширину части с графиком в выводе
--stat. Если задан, параметр применяется ко всем командам, формирующим вывод--stat, кромеformat-patch. -
diff.context -
Формировать diff с
<n>строками контекста вместо значения по умолчанию, равного 3. Это значение переопределяется параметром-U. -
diff.interHunkContext -
Показывать контекст между фрагментами diff, добавляя указанное количество строк и объединяя таким образом близко расположенные фрагменты. Это значение используется по умолчанию для параметра командной строки
--inter-hunk-context. -
diff.external -
Если эта переменная конфигурации задана, diff формируется не с помощью встроенных средств Git, а указанной командой. Значение можно переопределить переменной окружения
GIT_EXTERNAL_DIFF. Команда вызывается с параметрами, описанными в разделе «Git Diffs» справки git[1]. Примечание: если требуется использовать внешнюю программу diff только для части файлов, вместо этого можно воспользоваться gitattributes[5]. -
diff.trustExitCode -
Если этому логическому параметру присвоено значение
true, командаdiff.externalдолжна возвращать код завершения 0, если считает входные файлы одинаковыми, или 1, если считает их различными, какdiff(1). Если параметру присвоено значениеfalse(по умолчанию), команда должна возвращать код завершения0независимо от того, одинаковы ли файлы. Любой другой код завершения приводит к сообщению Git о фатальной ошибке. -
diff.ignoreSubmodules -
Задаёт значение по умолчанию для
--ignore-submodules. Обратите внимание: это влияет только на Porcelain-командыgitdiff, но не на низкоуровневые командыdiff, такие какgitdiff-files. При отображении незакоммиченных изменений этот параметр также учитывают командыgitcheckoutиgitswitch. Если задать значениеall, сводка по подмодулям, обычно отображаемая командамиgitcommitиgitstatusпри установленном параметреstatus.submoduleSummary, будет отключена, если только это не переопределено параметром командной строки--ignore-submodules. На командыgitsubmoduleэтот параметр не влияет. По умолчанию задано значение untracked, поэтому все неотслеживаемые подмодули игнорируются. -
diff.mnemonicPrefix -
Если параметр задан,
gitdiffиспользует пару префиксов, отличающуюся от стандартныхa/иb/в зависимости от сравниваемых объектов. При включённой конфигурации в обратном выводе diff порядок префиксов также меняется на противоположный:-
gitdiff -
сравнивает индекс (i) и рабочее дерево (w);
-
gitdiffHEAD -
сравнивает коммит (c) и рабочее дерево (w);
-
gitdiff--cached -
сравнивает коммит (c) и индекс (i);
-
gitdiffHEAD:<file1> <file2> -
сравнивает объект (o) и сущность рабочего дерева (w);
-
gitdiff--no-index<a> <b> -
сравнивает два объекта, не относящихся к Git,
<a>и<b>.
-
-
diff.noPrefix -
Если параметр задан,
gitdiffне отображает префиксы исходного и целевого файлов. -
diff.srcPrefix -
Если параметр задан,
gitdiffиспользует указанный префикс исходного файла. По умолчанию используетсяa/. -
diff.dstPrefix -
Если параметр задан,
gitdiffиспользует указанный префикс целевого файла. По умолчанию используетсяb/. -
diff.relative -
Если параметру присвоено значение
true,gitdiffне показывает изменения за пределами каталога и выводит пути относительно текущего каталога. -
diff.orderFile -
Файл, задающий порядок файлов в diff. Подробности см. в описании параметра
-Oкоманды git-diff[1]. Еслиdiff.orderFile— относительный путь, он считается относительно корня рабочего дерева. -
diff.renameLimit -
Количество файлов, рассматриваемых при полном поиске копирований и переименований; эквивалент параметра
gitdiff-l. Если значение не задано, в настоящее время по умолчанию используется 1000. Эта настройка не действует, если поиск переименований отключён. -
diff.renames -
Определяет, выполняет ли Git поиск переименований и каким образом. Если задано значение
false, поиск переименований отключён. Если задано значениеtrue, включён базовый поиск переименований. Если задано значениеcopiesилиcopy, Git также выполняет поиск копирований. По умолчанию используетсяtrue. Обратите внимание: это влияет только на Porcelain-командыgitdiff, такие как git-diff[1] и git-log[1], но не на низкоуровневые команды, например git-diff-files[1]. -
diff.suppressBlankEmpty -
Логический параметр, отключающий стандартное поведение — вывод пробела перед каждой пустой строкой вывода. По умолчанию имеет значение
false. -
diff.submodule -
Задаёт формат отображения различий в подмодулях. Формат
shortпоказывает только имена коммитов в начале и в конце диапазона. Форматlogперечисляет коммиты в диапазоне так же, как это делаетsummaryкоманды git-submodule[1]. Форматdiffпоказывает встроенный diff изменённого содержимого подмодуля. По умолчанию используетсяshort. -
diff.wordRegex -
Расширенное регулярное выражение POSIX, используемое для определения того, что считать «словом» при вычислении различий пословно. Последовательности символов, соответствующие регулярному выражению, являются «словами», все остальные символы считаются игнорируемыми пробельными символами.
-
diff.<driver>.command -
Команда пользовательского драйвера diff. Подробности см. в gitattributes[5].
-
diff.<driver>.trustExitCode -
Если этому логическому параметру присвоено значение
true, командаdiff.<driver>.commandдолжна возвращать код завершения 0, если считает входные файлы одинаковыми, или 1, если считает их различными, какdiff(1). Если параметру присвоено значениеfalse(по умолчанию), команда должна возвращать код завершения 0 независимо от того, одинаковы ли файлы. Любой другой код завершения приводит к сообщению Git о фатальной ошибке. -
diff.<driver>.xfuncname -
Регулярное выражение, которое драйвер diff должен использовать для распознавания заголовка фрагмента. Также можно использовать встроенный шаблон. Подробности см. в gitattributes[5].
-
diff.<driver>.binary -
Задайте этому параметру значение
true, чтобы драйвер diff считал файлы бинарными. Подробности см. в gitattributes[5]. -
diff.<driver>.textconv -
Команда, которую драйвер diff должен вызывать для создания преобразованной в текст версии файла. Результат преобразования используется для формирования удобочитаемого diff. Подробности см. в gitattributes[5].
-
diff.<driver>.wordRegex -
Регулярное выражение, которое драйвер diff должен использовать для разделения слов в строке. Подробности см. в gitattributes[5].
-
diff.<driver>.cachetextconv -
Задайте этому параметру значение
true, чтобы драйвер diff кэшировал результаты преобразования текста. Подробности см. в gitattributes[5]. -
diff.indentHeuristic -
Задайте этому параметру значение
false, чтобы отключить эвристики, включённые по умолчанию и сдвигающие границы фрагментов diff для повышения удобочитаемости патчей. -
diff.algorithm -
Выбрать алгоритм diff. Доступны следующие варианты:
-
default -
myers -
Базовый жадный алгоритм diff. В настоящее время используется по умолчанию.
-
minimal -
Затратить дополнительное время, чтобы гарантировать создание минимально возможного diff.
-
patience -
При создании патчей использовать алгоритм «patience diff».
-
histogram -
Этот алгоритм расширяет алгоритм patience, «поддерживая общие элементы с низкой частотой встречаемости».
-
-
diff.wsErrorHighlight -
Подсвечивать ошибки в пробельных символах в строках diff
context,oldилиnew. Несколько значений разделяются запятыми;noneсбрасывает предыдущие значения,defaultсбрасывает список доnew, аall— сокращение дляold,new,context. Ошибки в пробельных символах выделяются цветомcolor.diff.whitespace. Параметр командной строки--ws-error-highlight=<kind> переопределяет эту настройку. -
diff.colorMoved -
Если задано допустимое значение
<mode>или значениеtrue, перемещённые строки в diff окрашиваются иначе. Описание допустимых режимов см. в--color-movedв справке git-diff[1]. Если задано просто значениеtrue, используется цветовой режим по умолчанию. Если задано значениеfalse, перемещённые строки не окрашиваются. -
diff.colorMovedWS -
Если перемещённые строки окрашиваются, например, с помощью настройки
diff.colorMoved, этот параметр определяет режим обработки пробелов. Описание допустимых режимов см. в--color-moved-wsв справке git-diff[1]. -
diff.tool -
Управляет выбором инструмента diff, используемого командой git-difftool[1]. Эта переменная переопределяет значение, настроенное в
merge.tool. В списке ниже приведены допустимые встроенные значения. Любое другое значение рассматривается как пользовательский инструмент diff и требует определения соответствующей переменнойdifftool.<tool>.cmd. -
diff.guitool -
Управляет выбором инструмента diff, используемого командой git-difftool[1], если указан флаг
-g/--gui. Эта переменная переопределяет значение, настроенное вmerge.guitool. В списке ниже приведены допустимые встроенные значения. Любое другое значение рассматривается как пользовательский инструмент diff и требует определения соответствующей переменнойdifftool.<guitool>.cmd.-
araxis
-
bc
-
codecompare
-
deltawalker
-
diffmerge
-
diffuse
-
ecmerge
-
emerge
-
examdiff
-
guiffy
-
gvimdiff
-
kdiff3
-
kompare
-
meld
-
nvimdiff
-
opendiff
-
p4merge
-
smerge
-
tkdiff
-
vimdiff
-
vscode
-
winmerge
-
xxdiff
-
-
difftool.<tool>.cmd -
Задаёт команду для вызова указанного инструмента diff. Указанная команда выполняется в оболочке; доступны следующие переменные:
LOCALсодержит имя временного файла с содержимым исходного образа diff, аREMOTEсодержит имя временного файла с содержимым конечного образа diff.Подробнее см. описание параметра
--tool=<tool> в справке git-difftool[1]. -
difftool.<tool>.path -
Переопределяет путь к указанному инструменту. Полезно, если инструмент не находится в PATH.
-
difftool.trustExitCode -
Завершать difftool, если вызванный инструмент diff возвращает ненулевой статус завершения.
Подробнее см. описание параметра
--trust-exit-codeв справке git-difftool[1]. -
difftool.prompt -
Запрашивать подтверждение перед каждым вызовом инструмента diff.
-
difftool.guiDefault -
Задайте значение
true, чтобы по умолчанию использоватьdiff.guitool(эквивалентно указанию аргумента--gui), илиauto, чтобы выбиратьdiff.guitoolилиdiff.toolв зависимости от наличия значения переменной окруженияDISPLAY. По умолчанию используется значениеfalse; в этом случае аргумент--guiнеобходимо указать явно, чтобы использоватьdiff.guitool. - extensions.*
-
Если не указано иное, указывать расширение нельзя, если
core.repositoryFormatVersionне равно1. См. gitrepository-layout[5].- compatObjectFormat
-
Указывает алгоритм хеширования для обеспечения совместимости. Допустимые значения:
sha1иsha256. Указанное значение должно отличаться от значенияextensions.objectFormat. Это позволяет обеспечить взаимодействие на клиентском уровне между репозиториями Git, у которых objectFormat совпадает с этим compatObjectFormat. В частности, после полной реализации станет возможна отправка изменений в репозиторий и получение изменений из репозитория, у которого objectFormat совпадает с compatObjectFormat. Кроме того, можно будет использовать идентификаторы объектов (oid), закодированные в compatObjectFormat, наряду с oid, закодированными в objectFormat, для указания объектов в локальном репозитории.Обратите внимание: функциональность, включаемая этим расширением, реализована не полностью и может измениться. В настоящее время она существует только для разработки и тестирования базовой функции и не предназначена для использования конечными пользователями.
- noop
-
Это расширение никак не изменяет поведение Git. Оно полезно только для тестирования совместимости с форматом 1.
По историческим причинам это расширение учитывается независимо от настройки
core.repositoryFormatVersion. - noop-v1
-
Это расширение никак не изменяет поведение Git. Оно полезно только для тестирования совместимости с форматом 1.
- objectFormat
-
Указывает используемый алгоритм хеширования. Допустимые значения:
sha1иsha256. Если значение не указано, используетсяsha1.Обратите внимание: эту настройку должны задавать только git-init[1] или git-clone[1]. Попытка изменить ее после инициализации не сработает и приведет к проблемам, которые трудно диагностировать.
- partialClone
-
Если включено, указывает, что репозиторий был создан с частичным клонированием (или позднее получил данные посредством частичной выборки) и что удаленный репозиторий мог не отправить некоторые ненужные объекты. Такой удаленный репозиторий называется «promisor remote» и гарантирует, что все пропущенные объекты можно будет получить из него в будущем.
Значением этого ключа является имя promisor remote.
По историческим причинам это расширение учитывается независимо от настройки
core.repositoryFormatVersion. - preciousObjects
-
Если включено, указывает, что объекты в репозитории НЕЛЬЗЯ удалять (например, с помощью
git-pruneилиgitrepack-d).По историческим причинам это расширение учитывается независимо от настройки
core.repositoryFormatVersion. - refStorage
-
Указывает формат хранения ссылок и соответствующую полезную нагрузку. Значением может быть имя формата или URI:
-
Только имя формата (например,
reftableилиfiles). -
URI в формате <format>
://<payload> явно указывает и формат, и полезную нагрузку (например,reftable:///foo/bar).
Поддерживаются следующие имена форматов:
-
files -
для отдельных файлов с packed-refs. Это формат по умолчанию.
-
reftable -
для формата reftable.
Полезная нагрузка передается непосредственно серверной части ссылок. Для серверных частей files и reftable она должна быть путем в файловой системе, где будут храниться ссылки. Если полезная нагрузка не указана, используется commondir. Относительные пути разрешаются относительно
$GIT_DIR. В будущем другие серверные части могут поддерживать иные схемы полезной нагрузки, например postgres://127.0.0.1:5432?database=myrepo.Обратите внимание: эту настройку должны задавать только git-init[1] или git-clone[1]. Попытка изменить ее после инициализации не сработает и приведет к проблемам, которые трудно диагностировать.
-
- relativeWorktrees
-
Если включено, указывает, что как минимум одно рабочее дерево связано с использованием относительных путей. Настройка включается автоматически, если рабочее дерево было создано или восстановлено с параметром
--relative-pathsлибо если для параметра конфигурацииworktree.useRelativePathsзадано значениеtrue. - submodulePathConfig
-
Это расширение предназначено для небольшого числа пользователей, которые:
-
сталкиваются с ошибками вида
refusingtocreate...inanothersubmodule'sgitdirпо разным причинам, например из-за конфликтов в файловых системах без учета регистра при создании модулей с именамиfooиFoo. -
нуждаются в более гибкой структуре подмодулей, например из-за вложенных имен вроде
foo,foo/barиfoo/baz, которые не поддерживаются стандартным механизмом gitdir, использующим расположения вида.git/modules/<plain-name> и вызывающим дополнительные конфликты.
Если включено
extensions.submodulePathConfig, конфигурацияsubmodule.<name>.gitdirстановится единственным источником достоверной информации обо всех путях gitdir подмодулей и автоматически задается для всех новых подмодулей при клонировании и инициализации.Git выдаст ошибку, если для модуля не задан соответствующий параметр
submodule.<name>.gitdir.Существующие подмодули (созданные до появления расширения) необходимо перенести, добавив отсутствующие записи конфигурации. Это можно сделать вручную, например для каждого подмодуля:
gitconfigsubmodule.<name>.gitdir.git/modules/<name>, или с помощью командыgitsubmodule--helpermigrate-gitdir-configs, которая проходит по всем подмодулям и пытается перенести их.Расширение можно автоматически включать для новых репозиториев, задав для
init.defaultSubmodulePathConfigзначениеtrue, например выполнивgitconfig--globalinit.defaultSubmodulePathConfigtrue. -
- worktreeConfig
-
Если включено, рабочие деревья будут загружать настройки конфигурации из файла
$GIT_DIR/config.worktreeв дополнение к файлу$GIT_COMMON_DIR/config. Обратите внимание: для основного рабочего дерева$GIT_COMMON_DIRи$GIT_DIRсовпадают, тогда как для других рабочих деревьев$GIT_DIRимеет значение$GIT_COMMON_DIR/worktrees/<id>/. Настройки в файлеconfig.worktreeимеют приоритет над настройками из любых других файлов конфигурации.При включении этого расширения необходимо переместить некоторые параметры из общего файла конфигурации в файл
config.worktreeосновного рабочего дерева, если он существует:-
core.worktreeнеобходимо переместить из$GIT_COMMON_DIR/configв$GIT_COMMON_DIR/config.worktree. -
Если
core.bareимеет значение true, его необходимо переместить из$GIT_COMMON_DIR/configв$GIT_COMMON_DIR/config.worktree.
В зависимости от того, хотите ли вы настраивать параметры разреженного извлечения отдельно для каждого рабочего дерева, также может быть полезно изменить расположение
core.sparseCheckoutиcore.sparseCheckoutCone. По умолчанию встроенная командаgitsparse-checkoutвключает это расширение, задает эти значения конфигурации отдельно для каждого рабочего дерева и использует файл$GIT_DIR/info/sparse-checkout, чтобы независимо указывать разреженность для каждого рабочего дерева. Дополнительные сведения см. в git-sparse-checkout[1].По историческим причинам это расширение учитывается независимо от настройки
core.repositoryFormatVersion. -
- fastimport.unpackLimit
-
Если число объектов, импортированных с помощью git-fast-import[1], меньше этого предела, объекты будут распакованы в отдельные файлы объектов. Если же число импортированных объектов равно этому пределу или превышает его, пакет будет сохранен как pack-файл. Сохранение пакета, созданного fast-import, может ускорить завершение операции импорта, особенно в медленных файловых системах. Если параметр не задан, вместо него используется значение
transfer.unpackLimit. - feature.*
-
Параметры конфигурации, начинающиеся с
feature., изменяют значения по умолчанию для группы других параметров конфигурации. Эти группы создаются сообществом разработчиков Git как рекомендуемые настройки по умолчанию и могут изменяться. В частности, могут добавляться новые параметры конфигурации с другими значениями по умолчанию. - feature.experimental
-
Включает параметры конфигурации, недавно появившиеся в Git и рассматриваемые в качестве настроек по умолчанию в будущем. Параметры конфигурации из этой группы могут добавляться или удаляться в каждом выпуске, в том числе в минорных обновлениях. Из-за новизны этих параметров возможны непредвиденные взаимодействия между ними. Включите эту настройку, если хотите оставить отзыв об экспериментальных функциях. Новые значения по умолчанию:
-
fetch.negotiationAlgorithm=skippingможет ускорить согласование при получении данных, пропуская за раз больше коммитов и сокращая число циклов обмена данными. -
pack.useBitmapBoundaryTraversal=trueможет ускорить обход bitmap, обрабатывая меньше объектов. -
pack.allowPackReuse=multiможет сократить время создания пакета за счет повторного использования объектов из нескольких пакетов, а не только из одного. -
pack.usePathWalkможет ускорить создание pack-файлов и значительно уменьшить их размер при наличии определенных совпадений имен файлов с хешем имен по умолчанию в Git. -
init.defaultRefFormat=reftableприводит к тому, что в новых инициализированных репозиториях для хранения ссылок используется формат reftable. Этот новый формат решает проблемы с файловыми системами без учета регистра, обеспечивает лучшее сжатие и значительно повышает производительность во многих сценариях. Дополнительные сведения об этом новом формате хранения см. в Documentation/technical/reftable.adoc.
-
- feature.manyFiles
-
Включает параметры конфигурации, оптимизирующие работу с репозиториями, в рабочем каталоге которых много файлов. При большом количестве файлов такие команды, как
gitstatusиgitcheckout, могут работать медленно; новые значения по умолчанию повышают производительность:-
index.skipHash=trueускоряет запись индекса, не вычисляя завершающую контрольную сумму. Обратите внимание: из-за этого версии Git до 2.13.0 откажутся разбирать индекс, а версии Git до 2.40.0 сообщат о повреждении индекса при выполненииgitfsck. -
index.version=4включает сжатие префиксов путей в индексе. -
core.untrackedCache=trueвключает кэш неотслеживаемых файлов. Эта настройка предполагает, что mtime на вашем компьютере работает корректно.
-
-
fetch.recurseSubmodules -
Этот параметр управляет тем, будет ли
gitfetch(и лежащая в его основе операция получения данных вgitpull) рекурсивно получать данные для заполненных подмодулей. Параметру можно задать логическое значение или значениеon-demand. Если задано логическое значение, команда fetch и pull при значении true безусловно рекурсивно обрабатывает подмодули, а при значении false не выполняет рекурсию. Если задано значениеon-demand, команды fetch и pull выполняют рекурсию в заполненный подмодуль, только если суперпроект получает коммит, обновляющий ссылку подмодуля. По умолчанию используется значение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, меньше этого предела, объекты будут распакованы в отдельные файлы объектов. Если число полученных объектов равно этому пределу или превышает его, полученный пакет будет сохранен как pack-файл после добавления всех отсутствующих базовых дельт. Сохранение пакета при отправке данных может ускорить завершение операции отправки, особенно в медленных файловых системах. Если параметр не задан, вместо него используется значение
transfer.unpackLimit. -
fetch.prune -
Если значение равно true, команда fetch будет автоматически вести себя так, как если бы в командной строке был указан параметр
--prune. См. такжеremote.<name>.pruneи раздел «ОБРЕЗКА» в git-fetch[1]. -
fetch.pruneTags -
Если значение равно true, при очистке команда fetch будет автоматически вести себя так, как если бы был указан refspec
refs/tags/*:refs/tags/*, если он еще не задан. Это позволяет задать одновременно этот параметр иfetch.prune, чтобы поддерживать соответствие ссылок upstream один к одному. См. такжеremote.<name>.pruneTagsи раздел «ОБРЕЗКА» в git-fetch[1]. -
fetch.all -
Если значение равно true, команда fetch попытается обновить все доступные удаленные репозитории. Это поведение можно переопределить, передав
--no-allили явно указав один или несколько удаленных репозиториев для получения данных. По умолчанию используется значениеfalse. -
fetch.output -
Управляет выводом состояния обновления ссылок. Допустимые значения:
fullиcompact. Значение по умолчанию —full. Подробности см. в разделе «ВЫВОД» в git-fetch[1]. -
fetch.negotiationAlgorithm -
Управляет отправкой сведений о коммитах в локальном репозитории при согласовании содержимого pack-файла, который должен отправить сервер. Задайте значение
consecutive, чтобы использовать алгоритм, который последовательно обходит коммиты и проверяет каждый из них. Задайте значениеskipping, чтобы использовать алгоритм, пропускающий коммиты для более быстрого схождения, но способный привести к созданию pack-файла большего размера, чем необходимо. Задайте значениеnoop, чтобы вообще не отправлять никаких сведений: это почти наверняка приведет к созданию pack-файла большего размера, чем необходимо, но позволит пропустить этап согласования. Задайте значениеdefault, чтобы отменить ранее заданные настройки и использовать поведение по умолчанию. Обычно по умолчанию используется значениеconsecutive, но еслиfeature.experimentalимеет значениеtrue, по умолчанию используется значениеskipping. Если задано неизвестное значение, командаgitfetchзавершится с ошибкой.См. также параметры
--negotiate-onlyи--negotiation-restrictкоманды 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, чтобы после каждой команды
gitfetch, загружающей pack-файл с удаленного репозитория, записывать граф коммитов. При использовании параметра--splitв большинстве случаев поверх существующих файлов графа коммитов будет создаваться очень небольшой файл. Иногда эти файлы будут объединяться, и запись может занять больше времени. Обновленный файл графа коммитов повышает производительность многих команд Git, включаяgitmerge-base,gitpush-fиgitlog--graph. По умолчанию используется значениеfalse. -
fetch.bundleURI -
В этом значении хранится URI для загрузки данных об объектах Git из bundle URI перед выполнением инкрементальной выборки с исходного сервера Git. Это аналогично работе параметра
--bundle-uriкоманды git-clone[1]. Командаgitclone--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. - filter.<driver>.clean
-
Команда, используемая для преобразования содержимого файла рабочего дерева в blob при добавлении файла в индекс. Подробности см. в gitattributes[5].
- filter.<driver>.smudge
-
Команда, используемая для преобразования содержимого объекта blob в файл рабочего дерева при извлечении файла. Подробности см. в gitattributes[5].
- format.attach
-
Включает вложения multipart/mixed по умолчанию для
format-patch. Значением также может быть строка в двойных кавычках: в этом случае вложения будут включены по умолчанию, а указанное значение будет использовано как разделитель. См. параметр --attach команды git-format-patch[1]. Чтобы отменить ранее заданное значение, задайте пустую строку. - format.from
-
Задает значение по умолчанию для параметра
--fromкоманды format-patch. Принимает логическое значение либо имя и адрес электронной почты. Если значение равно false, по умолчанию format-patch использует--no-fromи непосредственно указывает авторов коммитов в поле «From:» писем с патчами. Если значение равно true, по умолчанию format-patch использует--from, указывая в поле «From:» писем с патчами ваши данные коммитера и добавляя в тело письма поле «From:», если данные отличаются. Если задано значение, не являющееся логическим, format-patch использует его вместо данных коммитера. По умолчанию используется значение false. - format.forceInBodyFrom
-
Задает значение по умолчанию для параметра
--[no-]force-in-body-fromкоманды format-patch. По умолчанию используется значение false. - format.numbered
-
Логическое значение, которое включает или отключает порядковые номера в темах писем с патчами. По умолчанию используется значение «auto»: нумерация включается, только если патчей больше одного. Ее можно включить или отключить для всех сообщений, задав значение «true» или «false». См. параметр --numbered команды git-format-patch[1].
- format.headers
-
Дополнительные заголовки электронной почты, включаемые в отправляемый по почте патч. См. git-format-patch[1].
- format.to
- format.cc
-
Дополнительные получатели, включаемые в отправляемый по почте патч. См. параметры --to и --cc команды git-format-patch[1].
- format.subjectPrefix
-
По умолчанию format-patch создает файлы с префиксом темы
[PATCH]. Используйте эту переменную, чтобы изменить префикс. - format.coverFromDescription
-
Режим по умолчанию, определяющий, какие части сопроводительного письма будут заполнены описанием ветки при использовании format-patch. См. параметр
--cover-from-descriptionкоманды git-format-patch[1]. - format.signature
-
По умолчанию format-patch выводит подпись с номером версии Git. Используйте эту переменную, чтобы изменить значение по умолчанию. Задайте для этой переменной пустую строку ("") , чтобы отключить создание подписи.
- format.signatureFile
-
Работает так же, как format.signature, но в качестве подписи используется содержимое файла, указанного этой переменной.
- format.suffix
-
По умолчанию format-patch создает файлы с суффиксом
.patch. Используйте эту переменную, чтобы изменить суффикс (если требуется, не забудьте включить точку). - format.encodeEmailHeaders
-
Кодирует заголовки электронной почты с символами, отличными от ASCII, с помощью «Q-кодирования» (описанного в RFC 2047) для передачи по электронной почте. По умолчанию используется значение true.
- format.pretty
-
Формат pretty по умолчанию для команд log/show/whatchanged. См. git-log[1], git-show[1], git-whatchanged[1].
- format.thread
-
Стиль потоков по умолчанию для
git format-patch. Может иметь логическое значение или быть равнымshallowилиdeep. Потокиshallowпревращают каждое письмо в ответ на первое письмо серии; первое письмо выбирается в следующем порядке: сопроводительное письмо,--in-reply-toи первое письмо с патчем. Потокиdeepпревращают каждое письмо в ответ на предыдущее. Логическое значение true соответствуетshallow, а значение false отключает потоки. - format.signOff
-
Логическое значение, позволяющее включить по умолчанию параметр
-s/--signoffкоманды format-patch. Примечание: добавление завершающей строкиSigned-off-byк патчу должно быть осознанным действием и означает, что вы подтверждаете наличие у вас прав на передачу этой работы на условиях той же лицензии с открытым исходным кодом. Дополнительное обсуждение см. в документеSubmittingPatches. - format.coverLetter
-
Логическое значение, определяющее, нужно ли создавать сопроводительное письмо при вызове format-patch. Кроме того, можно задать значение "auto", чтобы создавать сопроводительное письмо, только если патчей больше одного. По умолчанию — false.
- format.commitListFormat
-
Если параметр
--commit-list-formatне указан,format-patchиспользует значение этой переменной, чтобы определить формат записи каждого коммита. По умолчанию используетсяshortlog. - format.outputDirectory
-
Задаёт пользовательский каталог для хранения полученных файлов вместо текущего рабочего каталога. Будут созданы все компоненты пути.
- format.filenameMaxLength
-
Максимальная длина имён выходных файлов, создаваемых командой
format-patch; по умолчанию — 64. Может быть переопределена параметром командной строки--filename-max-length=<n>. - format.useAutoBase
-
Логическое значение, позволяющее включить по умолчанию параметр
--base=autoкоманды format-patch. Также можно задать значение "whenAble", чтобы разрешить включение--base=auto, если доступна подходящая база, но в противном случае пропускать добавление сведений о базе, не завершая работу format с ошибкой. - format.notes
-
Задаёт значение по умолчанию для параметра
--notesкоманды format-patch. Принимает логическое значение или ссылку, указывающую, откуда получать заметки. Если задано значение false, по умолчанию format-patch использует--no-notes. Если задано значение true, по умолчанию format-patch использует--notes. Если задано нелогическое значение, по умолчанию format-patch использует--notes=<ref>, гдеref— это нелогическое значение. По умолчанию — false.Чтобы использовать ссылку
refs/notes/true, укажите именно это значение.Эту настройку можно указать несколько раз, чтобы включить несколько ссылок на заметки. В таком случае она будет вести себя так же, как несколько переданных параметров
--[no-]notes[=]. То есть значениеtrueпокажет заметки по умолчанию, значение <ref> также покажет заметки из указанной ссылки на заметки, а значениеfalseотменит предыдущие настройки и скроет заметки.Например,
[format] notes = true notes = foo notes = false notes = barпокажет только заметки из
refs/notes/bar. - format.mboxrd
-
Логическое значение, включающее надёжный формат "mboxrd", когда используется
--stdout, чтобы экранировать строки "^>+From ". - format.noprefix
-
Если задано, в патчах не показываются префиксы исходного файла и файла назначения. Это эквивалентно параметру
diff.noprefix, используемому вgitdiff(но не учитываемому вformat-patch). Обратите внимание: при включении этой настройки получателю созданных вами патчей потребуется применять их с параметром-p0. - fsck.<msg-id>
-
Во время fsck Git может обнаружить проблемы в устаревших данных, которые не создавались бы текущими версиями Git и не передавались бы по сети, если бы был задан параметр
transfer.fsckObjects. Эта возможность предназначена для поддержки работы с устаревшими репозиториями, содержащими такие данные.Настройка
fsck.<msg-id> будет учитываться командой git-fsck[1]. Чтобы принимать отправки таких данных, задайте вместо неёreceive.fsck.<msg-id>, а чтобы клонировать или получать их — задайтеfetch.fsck.<msg-id>.Для краткости в оставшейся части документации рассматривается
fsck.*, однако то же самое относится к соответствующим переменнымreceive.fsck.*иfetch.fsck.*.В отличие от таких переменных, как
color.uiиcore.editor, переменныеreceive.fsck.<msg-id> иfetch.fsck.<msg-id> не будут использовать настройкуfsck.<msg-id> в качестве запасного значения, если для них не заданы значения. Чтобы единообразно настроить параметры fsck для разных ситуаций, все три переменные должны иметь одинаковые значения.Если задана настройка
fsck.<msg-id>, ошибки можно преобразовать в предупреждения и наоборот, настроив параметрfsck.<msg-id>, где <msg-id> — это идентификатор сообщения fsck, а значение должно быть одним из следующих:error,warnилиignore. Для удобства fsck добавляет идентификатор сообщения в начало текста ошибки или предупреждения. Например, "missingEmail: invalid author/committer line - missing email" означает, что настройкаfsck.missingEmail=ignoreскроет эту проблему.В целом лучше перечислить существующие объекты с проблемами с помощью
fsck.skipList, чем указывать типы ошибок, общие для этих объектов, чтобы игнорировать их: в последнем случае новые проявления тех же ошибок могут остаться незамеченными.Если задать неизвестное значение
fsck.<msg-id>, fsck завершит работу с ошибкой. Если же задать неизвестные значенияreceive.fsck.<msg-id> иfetch.fsck.<msg-id>, Git лишь выдаст предупреждение.Поддерживаемые значения <msg-id> см. в разделе
FsckMessagesсправки git-fsck[1]. - fsck.skipList
-
Путь к списку имён объектов (то есть по одному полному SHA-1 на строку), для которых известно, что они повреждены, но нефатально, и которые следует игнорировать. В Git версии 2.20 и новее игнорируются комментарии (
#), пустые строки, а также начальные и конечные пробелы. В более старых версиях любая строка, не содержащая SHA-1, вызовет ошибку.Эта возможность полезна, когда необходимо принять давно существующий проект, несмотря на ошибки в ранних коммитах, которые можно безопасно игнорировать, например недопустимые адреса электронной почты коммиттеров. Примечание: этой настройкой нельзя пропускать повреждённые объекты.
Как и переменная
fsck.<msg-id>, эта переменная имеет соответствующие вариантыreceive.fsck.skipListиfetch.fsck.skipList.В отличие от таких переменных, как
color.uiиcore.editor, переменныеreceive.fsck.skipListиfetch.fsck.skipListне будут использовать настройкуfsck.skipListв качестве запасного значения, если для них не заданы значения. Чтобы единообразно настроить параметры fsck для разных ситуаций, все три переменные должны иметь одинаковые значения.В более старых версиях Git (до 2.20) в документации указывалось, что список имён объектов должен быть отсортирован. Это никогда не было обязательным требованием: имена объектов могли располагаться в любом порядке. Однако при чтении списка отслеживалось, отсортирован ли он, для внутренней реализации двоичного поиска, которая могла работать быстрее с уже отсортированным списком. Если только список не был огромным, не было смысла специально сортировать его заранее. Начиная с Git версии 2.20 используется хеш-таблица, поэтому теперь предварительная сортировка списка не нужна.
- fsmonitor.allowRemote
-
По умолчанию демон fsmonitor отказывается работать с репозиториями на сетевых файловых системах. Настройка
fsmonitor.allowRemoteсо значениемtrueпереопределяет это поведение. Учитывается только если дляcore.fsmonitorзадано значениеtrue. - fsmonitor.socketDir
-
Эта настройка, предназначенная для Mac OS и Linux, если она задана, указывает каталог, в котором создаётся сокет домена Unix для обмена данными между демоном fsmonitor и различными командами Git. Каталог должен находиться в нативной файловой системе. Учитывается только если для
core.fsmonitorзадано значениеtrue. - gc.aggressiveDepth
-
Параметр глубины, используемый в алгоритме дельта-сжатия команды
git gc --aggressive. По умолчанию равен 50 — значению по умолчанию параметра--depth, если не используется--aggressive.Подробнее см. документацию по параметру
--depthкоманды git-repack[1]. - gc.aggressiveWindow
-
Параметр размера окна, используемый в алгоритме дельта-сжатия команды
git gc --aggressive. По умолчанию равен 250 — это значительно больше стандартного значения--window, равного 10.Подробнее см. документацию по параметру
--windowкоманды git-repack[1]. - gc.auto
-
Если количество неупакованных объектов в репозитории превышает примерно это значение, команда
gitgc--autoупакует их. Некоторые команды Porcelain время от времени используют эту команду для выполнения лёгкой сборки мусора. Значение по умолчанию — 6700.Если задать значение 0, отключится не только автоматическая упаковка, основанная на количестве неупакованных объектов, но и все остальные эвристики, которые
gitgc--autoобычно использует для определения необходимости выполнения работы, напримерgc.autoPackLimit. - gc.autoPackLimit
-
Если количество пакетов, не помеченных файлом
*.keepв репозитории, превышает это значение, командаgitgc--autoобъединит их в один пакет большего размера. Значение по умолчанию — 50. Значение 0 отключает эту функцию. Установка дляgc.autoзначения 0 также отключает её.См. приведённую ниже переменную конфигурации
gc.bigPackThreshold. Если она используется, то влияет на работу ограничения числа автоматически упаковываемых объектов. - gc.autoDetach
-
Заставляет команду
gitgc--autoнемедленно завершить работу и продолжить выполнение в фоновом режиме, если система это поддерживает. Значение по умолчанию — true. Эта переменная конфигурации используется как запасная, еслиmaintenance.autoDetachне задана. - gc.bigPackThreshold
-
Если значение ненулевое, при запуске
gitgcсохраняются все пакеты, не относящиеся к cruft-пакетам, размер которых превышает этот предел. Это очень похоже на--keep-largest-pack, за исключением того, что сохраняются все удовлетворяющие порогу пакеты, а не только самый большой. По умолчанию — ноль. Поддерживаются стандартные суффиксы единиц измеренияk,mиg.Обратите внимание: если количество сохраняемых пакетов превышает gc.autoPackLimit, эта переменная конфигурации игнорируется и все пакеты, кроме базового, перепаковываются. После этого количество пакетов должно стать меньше gc.autoPackLimit, и настройка gc.bigPackThreshold снова будет учитываться.
Если для нормальной работы команды
gitrepackнедостаточно расчётного объёма памяти, аgc.bigPackThresholdне задана, самый большой пакет также будет исключён (это равносильно запускуgitgcс параметром--keep-largest-pack). - gc.writeCommitGraph
-
Если задано значение true, при запуске git-gc[1] команда gc перезапишет файл графа коммитов. При использовании
gitgc--autoграф коммитов будет обновлён, если потребуется обслуживание репозитория. Значение по умолчанию — true. Подробности см. в git-commit-graph[1]. - gc.logExpiry
-
Если файл gc.log существует, команда
gitgc--autoвыведет его содержимое и завершится с нулевым кодом возврата, не запускаясь, если только файл не старшеgc.logExpiry. Значение по умолчанию — "1.day". Другие способы указать значение см. в разделеgc.pruneExpire. - gc.packRefs
-
Запуск
gitpack-refsв репозитории делает его недоступным для клонирования версиями Git до 1.5.1.2 через простые транспортные протоколы, например HTTP. Эта переменная определяет, запускает лиgit gcкомандуgitpack-refs. Для включения этой функции во всех репозиториях, не являющихся чистыми, можно задать значениеnotbareлибо указать логическое значение. По умолчанию используетсяtrue. - gc.cruftPacks
-
Хранить недостижимые объекты в cruft-пакете (см. git-repack[1]), а не в виде неупакованных объектов. Значение по умолчанию —
true. - gc.maxCruftSize
-
Ограничивает размер новых cruft-пакетов при перепаковке. Если задан одновременно с
--max-cruft-size, приоритет имеет параметр командной строки. См. параметр--max-cruft-sizeкоманды git-repack[1]. - gc.pruneExpire
-
При запуске
git gcбудет вызвана командаprune --expire 2.weeks.ago(а при использовании cruft-пакетов черезgc.cruftPacksили--cruft— такжеrepack --cruft --cruft-expiration 2.weeks.ago). Эту переменную конфигурации можно использовать для переопределения периода ожидания. Значение "now" отключает период ожидания и немедленно удаляет недостижимые объекты, а значение "never" запрещает удаление. Эта функция помогает предотвратить повреждение данных, еслиgit gcвыполняется одновременно с другим процессом, записывающим данные в репозиторий; см. раздел "NOTES" в git-gc[1]. - gc.worktreePruneExpire
-
При запуске
git gcвызываетсяgit worktree prune --expire 3.months.ago. С помощью этой переменной конфигурации можно задать другой период ожидания. Значение "now" отключает период ожидания и немедленно удаляет$GIT_DIR/worktrees, а значение "never" запрещает удаление. - gc.reflogExpire
- gc.<pattern>.reflogExpire
-
git reflog expireудаляет записи reflog, возраст которых превышает это значение; по умолчанию — 90 дней. Значение "now" немедленно удаляет все записи, а значение "never" полностью запрещает их удаление по сроку давности. Если в середине имени указано "<pattern>" (например, "refs/stash"), настройка применяется только к ссылкам, соответствующим шаблону <pattern>. - gc.reflogExpireUnreachable
- gc.<pattern>.reflogExpireUnreachable
-
git reflog expireудаляет записи reflog, возраст которых превышает это значение и которые недостижимы из текущей вершины; по умолчанию — 30 дней. Значение "now" немедленно удаляет все записи, а значение "never" полностью запрещает их удаление по сроку давности. Если в середине имени указано "<pattern>" (например, "refs/stash"), настройка применяется только к ссылкам, соответствующим шаблону <pattern>.Такие записи обычно создаются при использовании
gitcommit--amendилиgitrebaseи относятся к коммитам, существовавшим до изменения коммита или перебазирования. Поскольку эти изменения не входят в текущий проект, большинство пользователей захотят удалять такие записи раньше, поэтому срок по умолчанию меньше, чем дляgc.reflogExpire. - gc.recentObjectsHook
-
При принятии решения об удалении объекта (при создании cruft-пакета или хранении недостижимых объектов в неупакованном виде) выполняет указанные команды командной оболочки. Их вывод интерпретируется как идентификаторы объектов, которые Git будет считать «недавно созданными» независимо от их возраста. Считая время изменения этих объектов равным текущему, Git сохранит все упомянутые в выводе объекты и их потомков вне зависимости от их фактического возраста.
Вывод должен содержать ровно один шестнадцатеричный идентификатор объекта в каждой строке и ничего больше. Объекты, которые не удаётся найти в репозитории, игнорируются. Поддерживается несколько хуков, но каждый из них должен завершиться успешно, иначе операция (создание cruft-пакета или распаковка недостижимых объектов) будет прервана.
- gc.repackFilter
-
При перепаковке использовать указанный фильтр для перемещения определённых объектов в отдельный файл пакета. См. параметр
--filter=<filter-spec> команды git-repack[1]. - gc.repackFilterTo
-
При перепаковке с использованием фильтра, см.
gc.repackFilter, указанное расположение используется для создания файла пакета, содержащего отфильтрованные объекты. ПРЕДУПРЕЖДЕНИЕ: указанное расположение должно быть доступно, например, через механизм alternates в Git; в противном случае Git может счесть репозиторий повреждённым, поскольку не сможет получить доступ к объектам в этом файле пакета. См. параметр--filter-to=<dir> команды git-repack[1] и разделobjects/info/alternatesсправки gitrepository-layout[5]. - gc.rerereResolved
-
Записи о конфликтах слияния, которые вы разрешили ранее, хранятся в течение указанного количества дней после запуска
git rerere gc. Можно также использовать более понятные человеку значения, например "1.month.ago". Значение по умолчанию — 60 дней. См. git-rerere[1]. - gc.rerereUnresolved
-
Записи о конфликтах слияния, которые вы не разрешили, хранятся в течение указанного количества дней после запуска
git rerere gc. Можно также использовать более понятные человеку значения, например "1.month.ago". Значение по умолчанию — 15 дней. См. git-rerere[1]. - gitcvs.commitMsgAnnotation
-
Добавляет эту строку к каждому сообщению коммита. Чтобы отключить эту функцию, задайте пустую строку. По умолчанию — "via git-CVS emulator".
- gitcvs.enabled
-
Определяет, включён ли интерфейс сервера CVS для этого репозитория. См. git-cvsserver[1].
- gitcvs.logFile
-
Путь к файлу журнала, в который интерфейс сервера CVS, ну… записывает разные данные. См. git-cvsserver[1].
- gitcvs.usecrlfattr
-
Если задано значение true, сервер проверяет атрибуты преобразования окончаний строк файлов, чтобы определить используемые режимы
-k. Если атрибуты указывают Git считать файл текстовым, режим-kостанется пустым, чтобы клиенты CVS считали его текстовым. Если атрибуты отключают преобразование текста, файлу будет назначен режим-kb, который запрещает клиенту выполнять какое-либо преобразование символов новой строки. Если атрибуты не позволяют определить тип файла, используетсяgitcvs.allBinary. См. gitattributes[5]. - gitcvs.allBinary
-
Используется, если
gitcvs.usecrlfattrне определяет правильный режим-kb. Если задано значение true, все файлы, для которых не удалось определить режим, отправляются клиенту в режиме-kb. В результате клиент считает их двоичными файлами и не выполняет преобразование символов новой строки. Если задать значение "guess", содержимое файлов анализируется, чтобы определить, являются ли они двоичными, как и в случае сcore.autocrlf. - gitcvs.dbName
-
База данных, используемая git-cvsserver для кэширования сведений о ревизиях, полученных из репозитория Git. Точное значение зависит от используемого драйвера базы данных; для SQLite (драйвера по умолчанию) это имя файла. Поддерживает подстановку переменных (подробности см. в git-cvsserver[1]). Не может содержать точку с запятой (;). По умолчанию:
%Ggitcvs.%m.sqlite - gitcvs.dbDriver
-
Используемый драйвер Perl DBI. Здесь можно указать любой доступный драйвер, но он может не работать. git-cvsserver тестируется с
DBD::SQLite, сообщалось о работоспособности сDBD::Pgи о неработоспособности сDBD::mysql. Экспериментальная функция. Не может содержать двойное двоеточие (:). По умолчанию:SQLite. См. git-cvsserver[1]. - gitcvs.dbUser
- gitcvs.dbPass
-
Имя пользователя и пароль для базы данных. Полезно только при настройке
gitcvs.dbDriver, поскольку SQLite не использует понятия пользователей и паролей баз данных.gitcvs.dbUserподдерживает подстановку переменных (подробности см. в git-cvsserver[1]). - gitcvs.dbTableNamePrefix
-
Префикс имени таблиц базы данных. Добавляется в начало имён всех используемых таблиц, позволяя использовать одну базу данных для нескольких репозиториев. Поддерживает подстановку переменных (подробности см. в git-cvsserver[1]). Все небуквенные символы заменяются символами подчёркивания.
Все переменные gitcvs, кроме gitcvs.usecrlfattr и gitcvs.allBinary, также можно указывать как gitcvs.<access_method>.<varname> (где access_method — одно из значений "ext" и "pserver"), чтобы они применялись только к соответствующему способу доступа.
- gitweb.category
- gitweb.description
- gitweb.owner
- gitweb.url
-
Описание см. в gitweb[1].
- gitweb.avatar
- gitweb.blame
- gitweb.grep
- gitweb.highlight
- gitweb.patches
- gitweb.pickaxe
- gitweb.remote_heads
- gitweb.showSizes
- gitweb.snapshot
-
Описание см. в gitweb.conf[5].
- gpg.program
-
Путь к программе, используемой вместо "
gpg" при создании или проверке подписи PGP. Программа должна поддерживать тот же интерфейс командной строки, что и GPG: для проверки отсоединённой подписи выполняется команда "gpg --verify $signature - <$file", и программа должна сообщать об успешной проверке подписи, завершая работу с кодом 0. Для создания отсоединённой подписи в формате ASCII-armored содержимое, которое нужно подписать, передаётся стандартному вводу команды "gpg-bsau$key", а программа должна отправить результат в стандартный вывод. - gpg.format
-
Задаёт формат ключа, используемый для подписания с помощью
--gpg-sign. По умолчанию используется "openpgp". Другие возможные значения: "x509", "ssh".Описание формата подписи, который зависит от выбранного
gpg.format, см. в gitformat-signature[5]. - gpg.<format>.program
-
Используйте этот параметр, чтобы настроить программу для выбранного формата подписи (см.
gpg.programиgpg.format).gpg.programпо-прежнему можно использовать как устаревший синоним дляgpg.openpgp.program. По умолчанию дляgpg.x509.programиспользуется "gpgsm", а дляgpg.ssh.program— "ssh-keygen". - gpg.minTrustLevel
-
Задаёт минимальный уровень доверия для проверки подписи. Если этот параметр не задан, для проверки подписей при операциях слияния требуется ключ с уровнем доверия не ниже
marginal. Для других операций, выполняющих проверку подписи, требуется ключ с уровнем доверия не нижеundefined. Задание этого параметра переопределяет требуемый уровень доверия для всех операций. Поддерживаемые значения в порядке возрастания значимости:-
undefined -
never -
marginal -
fully -
ultimate
-
- gpg.ssh.defaultKeyCommand
-
Эта команда будет выполнена, если user.signingkey не задан, а запрошена подпись SSH. При успешном завершении в первой строке вывода ожидается корректный открытый ключ SSH с префиксом
key::. Это позволяет использовать скрипт для динамического поиска нужного открытого ключа, когда статически настроитьuser.signingKeyнецелесообразно. Например, когда ключи или SSH-сертификаты часто меняются или выбор нужного ключа зависит от внешних факторов, неизвестных Git. - gpg.ssh.allowedSignersFile
-
Файл, содержащий открытые ключи SSH, которым вы готовы доверять. Файл состоит из одной или нескольких строк с субъектами, за которыми следует открытый ключ SSH. Например:
user1@example.com,user2@example.comssh-rsaAAAAX1...Подробности см. в разделе "ALLOWED SIGNERS" справки ssh-keygen(1). Субъект используется только для идентификации ключа и доступен при проверке подписи.В SSH, в отличие от gpg, нет понятия уровней доверия. Чтобы различать действительные и доверенные подписи, при проверке подписи устанавливается уровень доверия
fully, если открытый ключ присутствует в allowedSignersFile. В противном случае уровень доверия равенundefined, и git verify-commit/tag завершится с ошибкой.Этот файл можно разместить вне репозитория; каждый разработчик поддерживает собственное хранилище доверенных ключей. Центральный сервер репозитория может автоматически создавать этот файл из SSH-ключей, имеющих доступ на отправку изменений, чтобы проверять код. В корпоративной среде этот файл, вероятно, создаётся в общей папке средствами автоматизации, которые уже управляют SSH-ключами разработчиков.
Репозиторий, в котором разрешены только подписанные коммиты, может хранить файл непосредственно в репозитории, используя путь относительно корневого каталога рабочего дерева. Таким образом, добавлять или изменять ключи в связке ключей могут только авторы коммитов, у которых уже есть действительный ключ.
Начиная с OpensSSH 8.8 в этом файле можно указывать срок действия ключа с помощью параметров valid-after и valid-before. Git будет считать подписи действительными, если подписывающий ключ был действителен на момент создания подписи. Это позволяет пользователям сменить ключ для подписания, не делая недействительными все ранее созданные подписи.
Также можно использовать ключ SSH CA с параметром cert-authority (см. раздел "CERTIFICATES" справки ssh-keygen(1)).
- gpg.ssh.revocationFile
-
Файл SSH KRL или список отозванных открытых ключей (без префикса субъекта). Подробности см. в справке ssh-keygen(1). Если открытый ключ найден в этом файле, ему всегда будет присвоен уровень доверия "never", а подписи будут считаться недействительными.
-
grep.lineNumber -
Если задано значение
true, по умолчанию включается параметр-n. -
grep.column -
Если задано значение
true, по умолчанию включается параметр--column. -
grep.patternType -
Задаёт поведение сопоставления по умолчанию. Значение
basic,extended,fixedилиperlвключает соответственно параметр--basic-regexp,--extended-regexp,--fixed-stringsили--perl-regexp, а значениеdefaultиспользует параметрgrep.extendedRegexp, чтобы выбрать междуbasicиextended. -
grep.extendedRegexp -
Если задано значение
true, по умолчанию включается параметр--extended-regexp. Этот параметр игнорируется, если для параметраgrep.patternTypeзадано значение, отличное отdefault. -
grep.threads -
Количество рабочих потоков grep. Если значение не задано (или равно 0), Git использует столько потоков, сколько доступно логических ядер.
-
grep.fullName -
Если задано значение
true, по умолчанию включается параметр--full-name. -
grep.fallbackToNoIndex -
Если задано значение
true, вместо этого используетсяgitgrep--no-index, если командаgitgrepвыполняется вне репозитория git. По умолчанию —false. - gui.commitMsgWidth
-
Задаёт ширину окна сообщения коммита в git-gui[1]. По умолчанию используется значение "75".
- gui.diffContext
-
Задаёт количество контекстных строк, используемых в вызовах diff из git-gui[1]. По умолчанию используется значение "5".
- gui.displayUntracked
-
Определяет, отображает ли git-gui[1] неотслеживаемые файлы в списке файлов. По умолчанию используется значение "true".
- gui.encoding
-
Задаёт кодировку символов по умолчанию для отображения содержимого файлов в git-gui[1] и gitk[1]. Её можно переопределить, задав атрибут
encodingдля соответствующих файлов (см. gitattributes[5]). Если этот параметр не задан, инструменты используют кодировку локали. - gui.matchTrackingBranch
-
Определяет, должны ли новые ветки, созданные с помощью git-gui[1], по умолчанию отслеживать удалённые ветки с совпадающими именами. По умолчанию: "false".
- gui.newBranchTemplate
-
Используется как предлагаемое имя при создании новых веток с помощью git-gui[1].
- gui.pruneDuringFetch
-
Значение "true" указывает, что git-gui[1] должен удалять ветки удалённого отслеживания при выполнении fetch. По умолчанию используется значение "false".
- gui.trustmtime
-
Определяет, должен ли git-gui[1] доверять временным меткам изменения файлов. По умолчанию временным меткам не доверяют.
- gui.spellingDictionary
-
Задаёт словарь для проверки орфографии сообщений коммитов в git-gui[1]. Если задано значение "none", проверка орфографии отключается.
- gui.fastCopyBlame
-
Если задано значение true,
git gui blameиспользует-Cвместо-C-Cдля определения исходного расположения. Это значительно ускоряет blame в больших репозиториях за счёт менее тщательного обнаружения копирования. - gui.copyBlameThreshold
-
Задаёт порог для определения исходного расположения в
git gui blame, измеряемый количеством буквенно-цифровых символов. Дополнительные сведения об обнаружении копирования см. в руководстве git-blame[1]. - gui.blamehistoryctx
-
Задаёт радиус исторического контекста в днях, отображаемого в gitk[1] для выбранного коммита при выборе пункта меню
ShowHistoryContextвgit gui blame. Если значение этой переменной равно нулю, отображается вся история. - gui.GCWarning
-
Определяет, должен ли git-gui[1] предлагать выполнить сборку мусора, если Git обнаруживает в репозитории большое количество свободных объектов. По умолчанию используется значение "true".
- guitool.<name>.cmd
-
Задаёт командную строку оболочки, выполняемую при выборе соответствующего пункта меню
Toolsв git-gui[1]. Этот параметр обязателен для каждого инструмента. Команда выполняется из корневого каталога рабочего дерева; в окружение передаётся имя инструмента в переменнойGIT_GUITOOL, имя выбранного файла — вFILENAME, а имя текущей ветки — вCUR_BRANCH(если HEAD отделён,CUR_BRANCHимеет пустое значение). - guitool.<name>.needsFile
-
Запускать инструмент, только если в графическом интерфейсе выбран diff. Гарантирует, что
FILENAMEне пуст. - guitool.<name>.noConsole
-
Запускать команду без вывода, не создавая окна для отображения результата.
- guitool.<name>.noRescan
-
Не сканировать рабочий каталог на наличие изменений после завершения работы инструмента.
- guitool.<name>.confirm
-
Показывать диалог подтверждения перед запуском инструмента.
- guitool.<name>.argPrompt
-
Запрашивать у пользователя строковый аргумент и передавать его инструменту через переменную окружения
ARGS. Поскольку запрос аргумента подразумевает подтверждение, параметрconfirmне действует, если этот параметр включён. Если для параметра задано значениеtrue,yesили1, в диалоговом окне используется встроенная общая подсказка; в противном случае используется точное значение переменной. - guitool.<name>.revPrompt
-
Запрашивать у пользователя одну допустимую ревизию и задавать переменную окружения
REVISION. В остальном этот параметр аналогиченargPromptи может использоваться вместе с ним. - guitool.<name>.revUnmerged
-
Показывать только несведённые ветки во вложенном диалоговом окне
revPrompt. Это полезно для инструментов, подобных merge или rebase, но не для таких операций, как checkout или reset. - guitool.<name>.title
-
Задаёт заголовок диалогового окна запроса. По умолчанию используется имя инструмента.
- guitool.<name>.prompt
-
Задаёт общую строку подсказки, отображаемую в верхней части диалогового окна перед разделами для
argPromptиrevPrompt. По умолчанию в строке указывается фактическая команда. - help.browser
-
Задаёт браузер, используемый для отображения справки в формате
web. См. git-help[1]. - help.format
-
Переопределяет формат справки, используемый по умолчанию командой git-help[1]. Поддерживаются значения
man,info,webиhtml. По умолчанию используетсяman. Значенияwebиhtmlозначают одно и то же. - help.autoCorrect
-
Если Git обнаруживает опечатку и может определить ровно одну допустимую команду, похожую на ошибочно введённую, он попытается предложить правильную команду или даже автоматически выполнить её. Возможные значения параметра конфигурации:
-
0, "false", "off", "no", "show": показать предлагаемую команду (значение по умолчанию).
-
1, "true", "on", "yes", "immediate": немедленно выполнить предлагаемую команду.
-
положительное число > 1: выполнить предлагаемую команду через указанное количество десятых долей секунды (0,1 с).
-
"never": не выполнять и не показывать предлагаемые команды.
-
"prompt": показать предложение и запросить подтверждение на выполнение команды.
-
- help.htmlPath
-
Задаёт путь к каталогу с документацией HTML. Поддерживаются пути файловой системы и URL. При отображении справки в формате
webэтот путь добавляется в начало URL HTML-страниц. По умолчанию используется путь к документации в каталоге установки Git.
- hook.<friendly-name>.command
-
Команда, выполняемая для
hook.<friendly-name>. <friendly-name> — уникальное имя, идентифицирующее этот хук. События хуков, запускающие команду, настраиваются с помощьюhook.<friendly-name>.event. Значением может быть путь к исполняемому файлу или однострочная команда оболочки. Если для одного и того же <friendly-name> указано несколько значений, используется только последнее разобранное значение. См. git-hook[1]. - hook.<friendly-name>.event
-
События хуков, запускающие
hook.<friendly-name>. Значение — имя события хука, например «pre-commit» или «update». (Полный список событий хуков см. в githooks[5].) При наступлении указанного события выполняется связанный с нимhook.<friendly-name>.command. Этот ключ может иметь несколько значений. Чтобы запускатьhook.<friendly-name> при нескольких событиях, укажите этот ключ несколько раз. Пустое значение сбрасывает список событий, удаляя все ранее заданные события дляhook.<friendly-name>. См. git-hook[1].<friendly-name> не должно совпадать с именем известного события хука (например, не используйте
hook.pre-commit.event). Использование известного имени события в качестве friendly-name приводит к фатальной ошибке, поскольку создаёт неоднозначность сhook.<event>.enabledиhook.<event>.jobs. Для неизвестных имён событий выводится предупреждение, если <friendly-name> совпадает со значением события. - hook.<friendly-name>.enabled
-
Определяет, включён ли хук
hook.<friendly-name>. По умолчанию —true. Установите значениеfalse, чтобы отключить хук, не удаляя его настройки. Это особенно полезно, когда хук задан в системном или глобальном файле конфигурации и его нужно отключить для определённого репозитория. См. git-hook[1]. - hook.<friendly-name>.parallel
-
Определяет, может ли хук
hook.<friendly-name> выполняться параллельно с другими хуками для того же события. По умолчанию —false. Установите значениеtrueтолько в том случае, если скрипт хука безопасно выполнять параллельно с другими хуками для того же события. Если для какого-либо хука события значение этого параметра не равноtrue, все хуки этого события выполняются последовательно независимо от значенияhook.jobs. Этот параметр нужно указывать только для настроенных (именованных) хуков. Для традиционных хуков, находящихся в каталоге hooks, указывать его не нужно: они выполняются параллельно, если эффективное число заданий больше 1. См. git-hook[1]. - hook.<event>.enabled
-
Параметр, включающий или отключающий все хуки для события хука <event>. Если установить значение
false, для этого события не будут запускаться никакие хуки независимо от настроек отдельных хуковhook.<friendly-name>.enabled. По умолчанию —true. См. git-hook[1].Примечание об именовании: <event> должно быть именем события (например,
pre-commit), а не friendly-name хука. Поскольку использовать известное имя события в качестве friendly-name запрещено (см. приведённый выше разделhook.<friendly-name>.event), для известных событий неоднозначности между настройками.enabledна уровне события и отдельного хука нет. Для неизвестных событий, если friendly-name совпадает с именем события вопреки предупреждению, параметр.enabledрассматривается только как настройка отдельного хука. - hook.<event>.jobs
-
Задаёт, сколько хуков может одновременно выполняться для события хука <event> (например,
hook.post-receive.jobs=4). Переопределяетhook.jobsдля этого события. Действуют те же ограничения параллельного выполнения: этот параметр не влияет на работу, если для всех настроенных хуков этого события не задано значениеhook.<friendly-name>.parallelравнымtrue. Установите значение-1, чтобы использовать число доступных ядер ЦП. Значением должно быть положительное целое число или-1; нулевое значение отклоняется с предупреждением. См. git-hook[1].Примечание об именовании: хотя этот ключ похож на
hook.<friendly-name>.*(настройку отдельного хука), <event> должно быть именем события, а не friendly-name хука. Компонент ключа сохраняется буквально и во время выполнения ищется по имени события; преобразования между этими двумя пространствами имён не происходит. Например, ключ видаhook.my-hook.jobsсохраняется как"my-hook", но во время выполнения поиск выполняется по имени события (например,"post-receive"), поэтомуhook.my-hook.jobsбудет молча проигнорирован, даже если для этого события зарегистрированmy-hook. При настройкеhook.<event>.jobsиспользуйтеhook.post-receive.jobsили любое другое допустимое имя события. - hook.jobs
-
Задаёт, сколько хуков может одновременно выполняться при параллельном запуске хуков. Если параметр не задан, по умолчанию используется значение 1 (последовательное выполнение). Установите значение
-1, чтобы использовать число доступных ядер ЦП. Значение можно переопределить для отдельного события с помощьюhook.<event>.jobs. Некоторые хуки всегда выполняются последовательно независимо от этого параметра, поскольку они работают с общими данными и их нельзя безопасно выполнять параллельно:-
applypatch-msg -
prepare-commit-msg -
commit-msg -
Получают файл с сообщением коммита и могут перезаписать его на месте.
-
pre-commit -
post-checkout -
push-to-checkout -
post-commit -
Обращаются к рабочему дереву, индексу или состоянию репозитория.
Этот параметр не влияет на работу, если для всех настроенных хуков этого события не задано значение
hook.<friendly-name>.parallelравнымtrue.Для хуков
pre-push, которые обычно не объединяют stdout и stderr, установка значения больше 1 (или передача-j) приведёт к перенаправлению stdout в stderr, чтобы обеспечить корректное разделение перемежающегося параллельного вывода. -
- http.proxy
-
Переопределяет HTTP-прокси, обычно задаваемый с помощью переменных среды
http_proxy,https_proxyиall_proxy(см.curl(1)). Помимо синтаксиса, понимаемого curl, можно указать строку прокси с именем пользователя, но без пароля. В этом случае git попытается получить пароль тем же способом, что и для других учётных данных. Дополнительные сведения см. в gitcredentials[7]. Таким образом, синтаксис имеет вид[protocol://][user[:password]@]proxyhost[:port][/path]. Этот параметр можно переопределить отдельно для каждого удалённого репозитория; см. remote.<name>.proxyЛюбой прокси, независимо от способа настройки, должен быть полностью прозрачным и не должен каким-либо образом изменять, преобразовывать или буферизовать запрос или ответ. Известно, что непрозрачные прокси вызывают различные сбои в работе Git.
- http.proxyAuthMethod
-
Задаёт метод аутентификации на HTTP-прокси. Параметр действует, только если настроенная строка прокси содержит имя пользователя (то есть имеет вид
user@hostилиuser@host:port). Значение можно переопределить отдельно для каждого удалённого репозитория; см.remote.<name>.proxyAuthMethod. Оба параметра можно переопределить с помощью переменной средыGIT_HTTP_PROXY_AUTHMETHOD. Возможные значения:-
anyauth— автоматически выбирает подходящий метод аутентификации. Предполагается, что прокси отвечает на запрос без аутентификации кодом состояния 407 и одним или несколькими заголовками Proxy-authenticate с поддерживаемыми методами аутентификации. Это значение используется по умолчанию. -
basic— базовая HTTP-аутентификация -
digest— HTTP-аутентификация по дайджесту; предотвращает передачу пароля прокси в открытом виде -
negotiate— аутентификация GSS-Negotiate (ср. параметр --negotiate командыcurl(1)) -
ntlm— аутентификация NTLM (ср. параметр --ntlm командыcurl(1))
-
- http.proxySSLCert
-
Путь к файлу с клиентским сертификатом, используемым для аутентификации на HTTPS-прокси. Значение можно переопределить с помощью переменной среды
GIT_PROXY_SSL_CERT. - http.proxySSLKey
-
Путь к файлу с закрытым ключом, используемым для аутентификации на HTTPS-прокси. Значение можно переопределить с помощью переменной среды
GIT_PROXY_SSL_KEY. - http.proxySSLCertPasswordProtected
-
Включает запрос пароля Git для SSL-сертификата прокси. В противном случае OpenSSL будет запрашивать пароль у пользователя, возможно, неоднократно, если сертификат или закрытый ключ зашифрован. Значение можно переопределить с помощью переменной среды
GIT_PROXY_SSL_CERT_PASSWORD_PROTECTED. - http.proxySSLCAInfo
-
Путь к файлу со связкой сертификатов, используемой для проверки прокси при работе через HTTPS-прокси. Значение можно переопределить с помощью переменной среды
GIT_PROXY_SSL_CAINFO. - http.emptyAuth
-
Пытается выполнить аутентификацию, не запрашивая имя пользователя или пароль. Это можно использовать для попытки аутентификации GSS-Negotiate без указания имени пользователя в URL, поскольку libcurl обычно требует имя пользователя для аутентификации. Возможные значения:
-
auto(по умолчанию) — отправлять пустые учётные данные, только если в ответе сервера 401 объявлен требующий их механизм аутентификации (например, GSS-Negotiate); в противном случае перейти к запросу учётных данных через помощник учётных данных. -
true— всегда отправлять пустые учётные данные в самом первом запросе, до получения от сервера ответа 401. -
false— никогда не отправлять пустые учётные данные. Механизмы, требующие пустых учётных данных или явного указания имени пользователя, например GSS-Negotiate, работать не будут.
-
- http.proactiveAuth
-
Пытается выполнить аутентификацию, не отправляя предварительно запрос без аутентификации и не дожидаясь ответа 401. Это можно использовать, чтобы гарантировать аутентификацию всех запросов. Если для
http.emptyAuthзадано значение true, этот параметр не действует.Если используемый помощник учётных данных указывает схему аутентификации (то есть через поле
authtype), будет использоваться эта схема; если указаны имя пользователя и пароль без схемы, используется базовая аутентификация. Значение параметра определяет схему, запрашиваемую у помощника. Возможные значения:-
basic— запросить у помощника базовую аутентификацию. -
auto— позволить помощнику выбрать подходящую схему. -
none— отключить упреждающую аутентификацию.
Обратите внимание, что при такой настройке всегда следует использовать TLS, поскольку в противном случае легко случайно раскрыть учётные данные в открытом виде, если выбрана базовая аутентификация.
-
- http.delegation
-
Управляет делегированием учётных данных GSSAPI. В libcurl делегирование по умолчанию отключено начиная с версии 7.21.7. Задаёт параметр, указывающий серверу, что ему разрешено делегировать в отношении учётных данных пользователя. Используется с GSS/Kerberos. Возможные значения:
-
none— не разрешать делегирование. -
policy— делегировать, только если в сервисном билете Kerberos установлен флаг OK-AS-DELEGATE; это определяется политикой области. -
always— безусловно разрешить серверу делегирование.
-
- http.extraHeader
-
Передаёт дополнительный HTTP-заголовок при взаимодействии с сервером. Если задано несколько таких записей, все они добавляются в качестве дополнительных заголовков. Чтобы разрешить переопределение настроек, унаследованных из системной конфигурации, пустое значение сбрасывает список дополнительных заголовков.
- http.cookieFile
-
Путь к файлу с ранее сохранёнными строками cookie, которые следует использовать в HTTP-сеансе Git, если они подходят для сервера. Формат файла с cookie должен соответствовать обычным HTTP-заголовкам или формату файлов cookie Netscape/Mozilla (см.
curl(1)). Если задать пустую строку, будут приниматься только новые cookie от сервера и отправляться обратно в последующих запросах в рамках того же соединения. Обратите внимание: файл, указанный в http.cookieFile, используется только для чтения, если не задан параметр http.saveCookies. - http.saveCookies
-
Если параметр задан, сохраняет в файл, указанный в http.cookieFile, cookie, полученные во время запросов. Не действует, если параметр http.cookieFile не задан или задан как пустая строка.
- http.version
-
Использует указанную версию протокола HTTP при взаимодействии с сервером. Если требуется принудительно задать версию по умолчанию, доступная версия и версия по умолчанию зависят от libcurl. В настоящее время этот параметр может принимать следующие значения:
-
HTTP/2
-
HTTP/1.1
-
- http.curloptResolve
-
Информация о разрешении имён узлов, которая будет использоваться libcurl в первую очередь при отправке HTTP-запросов. Информация должна иметь один из следующих форматов:
-
[+]HOST:PORT:ADDRESS[,ADDRESS]
-
-HOST:PORT
Первый формат перенаправляет все запросы к указанному
HOST:PORTна заданныеADDRESS(s). Второй формат удаляет все предыдущие значения конфигурации для этой комбинацииHOST:PORT. Чтобы упростить переопределение всех настроек, унаследованных из системной конфигурации, пустое значение сбрасывает всю информацию о разрешении имён в пустой список. -
- http.sslVersion
-
Версия SSL, используемая при согласовании SSL-соединения, если требуется принудительно задать версию по умолчанию. Доступные версии и версия по умолчанию зависят от того, была ли libcurl собрана с NSS или OpenSSL, а также от конкретной конфигурации используемой криптографической библиотеки. Внутри этот параметр задаёт опцию
CURLOPT_SSL_VERSION; дополнительные сведения о формате этой опции и поддерживаемых версиях SSL см. в документации libcurl. В настоящее время этот параметр может принимать следующие значения:-
sslv2
-
sslv3
-
tlsv1
-
tlsv1.0
-
tlsv1.1
-
tlsv1.2
-
tlsv1.3
Значение можно переопределить с помощью переменной среды
GIT_SSL_VERSION. Чтобы заставить git использовать версию SSL по умолчанию для libcurl и игнорировать явно заданный параметр http.sslversion, задайте дляGIT_SSL_VERSIONпустую строку. -
- http.sslCipherList
-
Список шифров SSL, используемых при согласовании SSL-соединения. Доступные шифры зависят от того, была ли libcurl собрана с NSS или OpenSSL, а также от конкретной конфигурации используемой криптографической библиотеки. Внутри этот параметр задаёт опцию
CURLOPT_SSL_CIPHER_LIST; дополнительные сведения о формате этого списка см. в документации libcurl.Значение можно переопределить с помощью переменной среды
GIT_SSL_CIPHER_LIST. Чтобы заставить git использовать список шифров libcurl по умолчанию и игнорировать явно заданный параметр http.sslCipherList, задайте дляGIT_SSL_CIPHER_LISTпустую строку. - http.sslVerify
-
Определяет, проверять ли сертификат SSL при получении или отправке данных через HTTPS. По умолчанию — true. Значение можно переопределить с помощью переменной среды
GIT_SSL_NO_VERIFY. - http.sslCert
-
Файл с сертификатом SSL, используемым при получении или отправке данных через HTTPS. Значение можно переопределить с помощью переменной среды
GIT_SSL_CERT. - http.sslKey
-
Файл с закрытым ключом SSL, используемым при получении или отправке данных через HTTPS. Значение можно переопределить с помощью переменной среды
GIT_SSL_KEY. - http.sslCertPasswordProtected
-
Включает запрос пароля Git для сертификата SSL. В противном случае OpenSSL будет запрашивать пароль у пользователя, возможно, неоднократно, если сертификат или закрытый ключ зашифрован. Значение можно переопределить с помощью переменной среды
GIT_SSL_CERT_PASSWORD_PROTECTED. - http.sslCAInfo
-
Файл с сертификатами, используемыми для проверки другой стороны при получении или отправке данных через HTTPS. Значение можно переопределить с помощью переменной среды
GIT_SSL_CAINFO. - http.sslCAPath
-
Каталог с файлами сертификатов ЦС, используемыми для проверки другой стороны при получении или отправке данных через HTTPS. Значение можно переопределить с помощью переменной среды
GIT_SSL_CAPATH. - http.sslBackend
-
Имя используемой серверной части SSL (например, «openssl» или «schannel»). Этот параметр игнорируется, если cURL не поддерживает выбор серверной части SSL во время выполнения.
- http.sslCertType
-
Тип клиентского сертификата, используемого при получении или отправке данных через HTTPS. При использовании серверных частей openssl или gnutls поддерживаются значения «PEM» и «DER». Значение «P12» поддерживается для «openssl», «schannel», «securetransport» и gnutls версии 8.11 и выше. См. также
CURLOPT_SSLCERTTYPEв документации libcurl. Значение можно переопределить с помощью переменной средыGIT_SSL_CERT_TYPE. - http.sslKeyType
-
Тип закрытого ключа клиента, используемого при получении или отправке данных через HTTPS (например, «PEM», «DER» или «ENG»). Применяется только при использовании серверной части «openssl». Значение «DER» не поддерживается в openssl. Особенно полезно значение «ENG» для аутентификации с помощью токенов PKCS#11, если в параметре sslCert указан URL PKCS#11. См. также
CURLOPT_SSLKEYTYPEв документации libcurl. Значение можно переопределить с помощью переменной средыGIT_SSL_KEY_TYPE. - http.schannelCheckRevoke
-
Используется для включения или отключения проверки отзыва сертификатов в cURL, когда для http.sslBackend задано значение «schannel». Если параметр не задан, по умолчанию используется
true. Отключать эту проверку следует только в том случае, если Git постоянно выдаёт ошибку о проверке статуса отзыва сертификата. Этот параметр игнорируется, если cURL не поддерживает установку соответствующей опции SSL во время выполнения. - http.schannelUseSSLCAInfo
-
Начиная с cURL v7.60.0, серверная часть Secure Channel может использовать связку сертификатов, заданную через
http.sslCAInfo, однако при этом будет переопределено хранилище сертификатов Windows. Поскольку по умолчанию это нежелательно, Git по умолчанию сообщает cURL не использовать эту связку, если серверная частьschannelнастроена черезhttp.sslBackend, если только параметрhttp.schannelUseSSLCAInfoне переопределяет это поведение. - http.pinnedPubkey
-
Открытый ключ службы https. Значением может быть имя файла с открытым ключом в формате PEM или DER либо строка, начинающаяся с
sha256//, за которым следует хеш sha256 открытого ключа в кодировке base64. См. такжеCURLOPT_PINNEDPUBLICKEYв документации libcurl. git завершится с ошибкой, если этот параметр задан, но не поддерживается cURL. - http.sslTry
-
Пытается использовать AUTH SSL/TLS и шифрованную передачу данных при подключении через обычный протокол FTP. Это может потребоваться, если FTP-сервер требует этого по соображениям безопасности или если вы хотите устанавливать защищённое соединение всякий раз, когда удалённый FTP-сервер его поддерживает. По умолчанию — false, поскольку на неправильно настроенных серверах это может приводить к ошибкам проверки сертификата.
- http.maxRequests
-
Количество HTTP-запросов, запускаемых параллельно. Значение можно переопределить с помощью переменной среды
GIT_HTTP_MAX_REQUESTS. По умолчанию — 5. - http.minSessions
-
Количество сеансов curl (суммарно по слотам), сохраняемых между запросами. Они не будут завершены вызовом curl_easy_cleanup(), пока не будет вызвана функция http_cleanup(). Если USE_CURL_MULTI не определён, значение будет ограничено единицей. По умолчанию — 1.
- http.postBuffer
-
Максимальный размер буфера в байтах, используемого интеллектуальными транспортами HTTP при отправке данных POST на удалённую систему. Для запросов, превышающих размер этого буфера, используется HTTP/1.1 и Transfer-Encoding: chunked, чтобы не создавать локально огромный файл pack. По умолчанию — 1 MiB, чего достаточно для большинства запросов.
Обратите внимание: увеличение этого ограничения эффективно только для отключения передачи с разбиением на блоки, поэтому его следует использовать лишь в случаях, когда удалённый сервер или прокси поддерживает только HTTP/1.0 либо не соответствует стандарту HTTP. Как правило, увеличение значения не является эффективным решением большинства проблем с отправкой данных, но может значительно повысить потребление памяти, поскольку весь буфер выделяется даже для небольших отправок.
- http.lowSpeedLimit
- http.lowSpeedTime
-
Если скорость передачи HTTP в байтах в секунду остаётся ниже
http.lowSpeedLimitдольшеhttp.lowSpeedTimeсекунд, передача прерывается. Значения можно переопределить с помощью переменных средыGIT_HTTP_LOW_SPEED_LIMITиGIT_HTTP_LOW_SPEED_TIME. - http.keepAliveIdle
-
Задаёт, сколько секунд ждать в неактивном соединении перед отправкой проб TCP keepalive (если это поддерживается ОС). Если параметр не задан, используется значение curl по умолчанию. Значение можно переопределить с помощью переменной среды
GIT_HTTP_KEEPALIVE_IDLE. - http.keepAliveInterval
-
Задаёт интервал в секундах между пробами TCP keepalive (если это поддерживается ОС). Если параметр не задан, используется значение curl по умолчанию. Значение можно переопределить с помощью переменной среды
GIT_HTTP_KEEPALIVE_INTERVAL. - http.keepAliveCount
-
Задаёт количество проб TCP keepalive, отправляемых до прекращения попыток и завершения соединения (если это поддерживается ОС). Если параметр не задан, используется значение curl по умолчанию. Значение можно переопределить с помощью переменной среды
GIT_HTTP_KEEPALIVE_COUNT. - http.retryAfter
-
Время ожидания в секундах перед повторной попыткой, если сервер возвращает HTTP 429 (слишком много запросов) без заголовка Retry-After. По умолчанию — 0 (повторная попытка выполняется немедленно). Если заголовок Retry-After присутствует, его значение имеет приоритет над этим параметром; однако для автоматического использования предоставленного сервером заголовка
Retry-Afterтребуется libcurl версии 7.66.0 или новее. В более старых версиях настройте этот параметр вручную, чтобы задать задержку перед повторной попыткой. Значение можно переопределить с помощью переменной средыGIT_HTTP_RETRY_AFTER. См. такжеhttp.maxRetriesиhttp.maxRetryTime. - http.maxRetries
-
Максимальное количество повторных попыток после получения ответа HTTP 429 (слишком много запросов). Чтобы отключить повторные попытки, установите значение 0 (по умолчанию). Значение можно переопределить с помощью переменной среды
GIT_HTTP_MAX_RETRIES. См. такжеhttp.retryAfterиhttp.maxRetryTime.
- http.maxRetryTime
-
Максимальное время в секундах ожидания одной повторной попытки при обработке ответов HTTP 429 (Too Many Requests). Если сервер запрашивает задержку (через заголовок Retry-After) или если
http.retryAfterнастроен на значение, превышающее этот максимум, Git немедленно завершит работу, не дожидаясь окончания задержки. Значение по умолчанию — 300 секунд (5 минут). Можно переопределить с помощью переменной окруженияGIT_HTTP_MAX_RETRY_TIME. См. такжеhttp.retryAfterиhttp.maxRetries. - http.noEPSV
-
Логическое значение, отключающее использование команды FTP EPSV в curl. Это может быть полезно при работе с некоторыми «некачественными» FTP-серверами, не поддерживающими режим EPSV. Можно переопределить с помощью переменной окружения
GIT_CURL_FTP_NO_EPSV. Значение по умолчанию — false (curl будет использовать EPSV). - http.userAgent
-
Строка HTTP USER_AGENT, передаваемая HTTP-серверу. Значение по умолчанию соответствует версии клиента Git, например git/1.7.1. Этот параметр позволяет заменить это значение более распространённым, например Mozilla/4.0. Это может потребоваться, например, при подключении через межсетевой экран, который разрешает HTTP-соединения только с набором распространённых строк USER_AGENT (но не с такими, как git/1.7.1). Можно переопределить с помощью переменной окружения
GIT_HTTP_USER_AGENT. - http.followRedirects
-
Следует ли Git переходить по HTTP-перенаправлениям. Если задано значение
true, Git будет автоматически переходить по всем перенаправлениям, полученным от сервера. Если задано значениеfalse, Git будет считать все перенаправления ошибками. Если задано значениеinitial, Git будет переходить по перенаправлениям только для первоначального запроса к удалённому репозиторию, но не для последующих HTTP-запросов. Поскольку Git использует перенаправленный URL как базовый для последующих запросов, этого обычно достаточно. Значение по умолчанию —initial. - http.<url>.*
-
Любой из приведённых выше параметров http.* можно применять выборочно к некоторым URL. Чтобы ключ конфигурации соответствовал URL, каждый элемент ключа конфигурации сравнивается с соответствующим элементом URL в следующем порядке:
-
Схема (например,
httpsвhttps://example.com/). Это поле должно полностью совпадать в ключе конфигурации и URL. -
Имя хоста/домена (например,
example.comвhttps://example.com/). Это поле должно совпадать в ключе конфигурации и URL. В имени хоста можно указать*, чтобы учесть все поддомены на этом уровне. Например,https://*.example.com/будет соответствоватьhttps://foo.example.com/, но неhttps://foo.bar.example.com/. -
Номер порта (например,
8080вhttp://example.com:8080/). Это поле должно полностью совпадать в ключе конфигурации и URL. Перед сравнением отсутствующие номера портов автоматически заменяются соответствующими значениями по умолчанию для данной схемы. -
Путь (например,
repo.gitвhttps://example.com/repo.git). Поле пути в ключе конфигурации должно точно совпадать с полем пути URL или быть его префиксом, состоящим из разделённых косыми чертами элементов пути. Это означает, что ключ конфигурации с путёмfoo/соответствует пути URLfoo/bar. Префикс может соответствовать только на границе косой черты (/). Более длинные совпадения имеют приоритет (поэтому ключ конфигурации с путёмfoo/barлучше соответствует пути URLfoo/bar, чем ключ конфигурации только с путёмfoo/). -
Имя пользователя (например,
userвhttps://user@example.com/repo.git). Если ключ конфигурации содержит имя пользователя, оно должно точно совпадать с именем пользователя в URL. Если ключ конфигурации не содержит имени пользователя, он будет соответствовать URL с любым именем пользователя (включая отсутствие имени), но иметь более низкий приоритет, чем ключ конфигурации с именем пользователя.
Приведённый выше список упорядочен по убыванию приоритета; URL, соответствующий пути ключа конфигурации, предпочтительнее URL, соответствующего имени пользователя. Например, если URL —
https://user@example.com/foo/bar, совпадение с ключом конфигурацииhttps://example.com/fooбудет предпочтительнее совпадения с ключом конфигурацииhttps://user@example.com.Перед сравнением все URL нормализуются (часть URL с паролем, если она есть, всегда игнорируется при сравнении), чтобы эквивалентные URL, записанные по-разному, корректно совпадали. Настройки переменных окружения всегда переопределяют любые совпадения. Для сравнения используются URL, непосредственно переданные командам Git. Это означает, что URL, посещённые в результате перенаправления, не участвуют в сравнении.
-
- i18n.commitEncoding
-
Кодировка символов, в которой хранятся сообщения коммитов; сам Git, в сущности, не зависит от неё, но эта информация необходима, например, при импорте коммитов из электронных писем или в графическом браузере истории gitk (а возможно, в будущем и в других местах или других пользовательских интерфейсах). См., например, git-mailinfo[1]. По умолчанию —
utf-8. - i18n.logOutputEncoding
-
Кодировка символов, в которую преобразуются сообщения коммитов при выполнении
git logи подобных команд. -
imap.folder -
Папка, в которую помещаются письма, обычно папка Drafts. Например:
INBOX.Drafts,INBOX/Draftsили [Gmail]/Drafts. Папка IMAP, с которой необходимо взаимодействовать, ДОЛЖНА быть указана; значение этой переменной конфигурации используется как значение по умолчанию, если параметр--folderне задан. -
imap.tunnel -
Команда для настройки туннеля к серверу IMAP, через который будут передаваться команды вместо прямого сетевого подключения к серверу. Обязательна, если не задан параметр
imap.host. -
imap.host -
URL, указывающий на сервер. Для незащищённых соединений используйте префикс
imap://, а для защищённых — префиксimaps://. Игнорируется, если задан параметрimap.tunnel, в противном случае обязателен. -
imap.user -
Имя пользователя для входа на сервер.
-
imap.pass -
Пароль для входа на сервер.
-
imap.port -
Целочисленный номер порта сервера, к которому следует подключиться. По умолчанию — 143 для узлов
imap://и 993 для узловimaps://. Игнорируется, если задан параметрimap.tunnel. -
imap.sslverify -
Логическое значение, включающее или отключающее проверку сертификата сервера, используемого SSL/TLS-соединением. По умолчанию —
true. Игнорируется, если задан параметрimap.tunnel. -
imap.preformattedHTML -
Логическое значение, включающее или отключающее использование HTML-кодирования при отправке патча. Патч в HTML-кодировке будет заключён в <pre> и будет иметь тип содержимого text/html. Ирония в том, что включение этого параметра заставляет Thunderbird отправлять патч как обычное текстовое письмо с форматом fixed. По умолчанию —
false. -
imap.authMethod -
Задаёт метод аутентификации на сервере IMAP. Если Git собран с параметром NO_CURL, версия curl старше 7.34.0 или вы запускаете git-imap-send с параметром
--no-curl, поддерживаются только методыPLAIN,CRAM-MD5,OAUTHBEARERиXOAUTH2. Если параметр не задан,gitimap-sendиспользует базовую команду IMAPLOGINдля передачи открытого текста. - include.path
- includeIf.<condition>.path
-
Специальные переменные для подключения других файлов конфигурации. См. раздел «ФАЙЛ КОНФИГУРАЦИИ» в основной документации git-config[1], в частности подразделы «Подключение» и «Условное подключение».
- index.recordEndOfIndexEntries
-
Указывает, должен ли индексный файл содержать раздел «End Of Index Entry». Это сокращает время загрузки индекса на многопроцессорных машинах, но при чтении индекса в версиях Git до 2.20 выводится сообщение «ignoring EOIE extension». По умолчанию задаётся значение
true, если index.threads включён явно, иfalseв противном случае. - index.recordOffsetTable
-
Указывает, должен ли индексный файл содержать раздел «Index Entry Offset Table». Это сокращает время загрузки индекса на многопроцессорных машинах, но при чтении индекса в версиях Git до 2.20 выводится сообщение «ignoring IEOT extension». По умолчанию задаётся значение
true, если index.threads включён явно, иfalseв противном случае. - index.sparse
-
Если параметр включён, индекс записывается с использованием записей разреженных каталогов. Это не действует, если параметры
core.sparseCheckoutиcore.sparseCheckoutConeне включены одновременно. По умолчанию —false. - index.threads
-
Указывает количество потоков, запускаемых при загрузке индекса. Это предназначено для сокращения времени загрузки индекса на многопроцессорных машинах. Значение 0 или
trueзаставит Git автоматически определить число процессоров и соответственно задать количество потоков. Значение 1 илиfalseотключит многопоточность. По умолчанию —true. - index.version
-
Задаёт версию, с которой следует инициализировать новые индексные файлы. На существующие репозитории это не влияет. Если включён параметр
feature.manyFiles, значением по умолчанию будет 4. - index.skipHash
-
Если параметр включён, завершающий хеш индексного файла не вычисляется. Это ускоряет команды Git, изменяющие индекс, например
gitadd,gitcommitилиgitstatus. Вместо контрольной суммы в конец записывается последовательность нулевых байтов, указывающая на то, что вычисление было пропущено.Если включить
index.skipHash, клиенты Git старше версии 2.13.0 откажутся разбирать индекс, а клиенты Git старше версии 2.40.0 сообщат об ошибке при выполненииgitfsck.
-
init.templateDir -
Укажите каталог, из которого будут копироваться шаблоны. (См. раздел «КАТАЛОГ ШАБЛОНОВ» в 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
-
Логическое значение, определяющее, должны ли
gitinitиgitcloneавтоматически устанавливатьextensions.submodulePathConfigв значениеtrue. Это позволяет автоматически использовать расширение пути подмодуля во всех новых репозиториях. Если значение не задано, по умолчанию используетсяfalse. - instaweb.browser
-
Укажите программу, которая будет использоваться для просмотра рабочего репозитория в gitweb. См. git-instaweb[1].
- instaweb.httpd
-
Команда HTTP-демона для запуска gitweb в рабочем репозитории. См. git-instaweb[1].
- instaweb.local
-
Если значение равно true, веб-сервер, запущенный командой git-instaweb[1], будет привязан к локальному IP-адресу (127.0.0.1).
- instaweb.modulePath
-
Путь к каталогу модулей по умолчанию, который будет использовать git-instaweb[1] вместо /usr/lib/apache2/modules. Используется, только если httpd — это Apache.
- instaweb.port
-
Номер порта, к которому привязывается HTTP-демон gitweb. См. git-instaweb[1].
- interactive.singleKey
-
Если установлено значение true, интерактивные команды позволяют пользователю вводить один символ нажатием одной клавиши (то есть без нажатия Enter). Сейчас это используется в режиме
--patchкоманд git-add[1], git-checkout[1], git-restore[1], git-commit[1], git-reset[1] и git-stash[1]. - interactive.diffFilter
-
Когда интерактивная команда (например,
gitadd--patch) показывает раскрашенный diff, Git передаёт его через команду оболочки, заданную этой переменной конфигурации. Команда может дополнительно форматировать diff для удобства чтения, если сохраняет взаимно-однозначное соответствие со строками исходного diff. По умолчанию отключено (фильтрация не выполняется). -
log.abbrevCommit -
Если значение равно
true, команды git-log[1], git-show[1] и git-whatchanged[1] предполагают, что--abbrev-commit. Этот параметр можно переопределить с помощью--no-abbrev-commit. -
log.date -
Задаёт режим даты и времени по умолчанию для команды
log. Установка значения для log.date аналогична использованию параметраgitlog--date. Подробности см. в git-log[1].Если формат задан как «auto:foo» и используется пейджер, для даты будет применён формат «foo». В противном случае будет использоваться «default».
-
log.decorate -
Выводит имена ссылок для всех коммитов, показываемых командой журнала. Возможные значения:
-
short -
префиксы имён ссылок
refs/heads/,refs/tags/иrefs/remotes/не выводятся. -
full -
выводится полное имя ссылки (включая префикс).
-
auto -
если вывод направлен в терминал, имена ссылок показываются так, как если бы был указан параметр
short; в противном случае имена ссылок не показываются.
Это аналог параметра
--decorateкомандыgitlog. -
-
log.initialDecorationSet -
По умолчанию
gitlogпоказывает декорации только для некоторых известных пространств имён ссылок. Если заданоall, все ссылки отображаются как декорации. -
log.excludeDecoration -
Исключает указанные шаблоны из декораций журнала. Это аналог параметра командной строки
--decorate-refs-exclude, но параметр конфигурации можно переопределить параметром--decorate-refs. -
log.diffMerges -
Задаёт формат diff, используемый при указании
--diff-merges=on; подробности см. в--diff-mergesв git-log[1]. По умолчанию используетсяseparate. -
log.follow -
Если значение равно
true,gitlogбудет вести себя так, как если бы был указан параметр--follow, когда задан один <path>. Это имеет те же ограничения, что и--follow: нельзя отслеживать несколько файлов, а также команда плохо работает с нелинейной историей. -
log.graphColors -
Список цветов, разделённых запятыми, используемых для отображения линий истории в
gitlog--graph. -
log.showRoot -
Если значение равно true, начальный коммит будет показан как крупное событие создания. Это эквивалентно diff с пустым деревом. Такие инструменты, как 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. - lsrefs.unborn
-
Может принимать значения «advertise» (по умолчанию), «allow» или «ignore». При значении «advertise» сервер ответит клиенту, отправившему «unborn» (как описано в gitprotocol-v2[5]), и объявит о поддержке этой функции при объявлении возможностей протокола версии 2. Значение «allow» аналогично «advertise», за исключением того, что сервер не объявляет о поддержке этой функции. Это полезно, например, для серверов с балансировкой нагрузки, которые нельзя обновить атомарно: администратор может настроить значение «allow», а затем, после задержки, — «advertise».
- mailinfo.scissors
-
Если значение равно true, git-mailinfo[1] (и, следовательно, git-am[1]) по умолчанию работает так, как если бы в командной строке был указан параметр --scissors. При включении эта функция удаляет всё содержимое тела сообщения до строки-разделителя (то есть строки, состоящей в основном из «>8», «8<» и «-»).
- mailmap.file
-
Расположение дополнительного файла mailmap. Сначала загружается файл mailmap по умолчанию, расположенный в корне репозитория, затем — файл mailmap, указанный этой переменной. Файл mailmap может находиться в подкаталоге репозитория или за его пределами. См. git-shortlog[1] и git-blame[1].
- mailmap.blob
-
Аналогично
mailmap.file, но значение рассматривается как ссылка на blob в репозитории. Если заданы иmailmap.file, иmailmap.blob, обрабатываются оба файла, причём записи изmailmap.fileимеют приоритет. В репозитории без рабочей копии по умолчанию используетсяHEAD:.mailmap. В обычном репозитории значение по умолчанию пустое. - maintenance.auto
-
Этот логический параметр конфигурации определяет, запускают ли некоторые команды
gitmaintenancerun--autoпосле выполнения обычной работы. По умолчанию — true. - maintenance.autoDetach
-
Многие команды Git запускают автоматическое обслуживание после записи данных в репозиторий. Этот логический параметр конфигурации определяет, будет ли автоматическое обслуживание выполняться на переднем плане или процесс обслуживания будет отсоединён и продолжит работу в фоновом режиме.
Если значение не задано, в качестве запасного используется значение
gc.autoDetach. Если не заданы оба значения, по умолчанию используется true, то есть процесс обслуживания будет отсоединён. - maintenance.strategy
-
Этот строковый параметр конфигурации позволяет выбрать одну из нескольких рекомендуемых стратегий обслуживания репозитория. Он определяет, какие задачи запускаются при выполнении
gitmaintenancerun, если не указаны аргументы--task=<task>. Этот параметр влияет на ручное, автоматическое и запланированное обслуживание. Набор выполняемых задач может различаться в зависимости от типа обслуживания.Стратегию обслуживания можно дополнительно настроить с помощью параметров
maintenance.<task>.enabledиmaintenance.<task>.schedule. Если они заданы, эти значения используются вместо значений по умолчанию, предоставляемых параметромmaintenance.strategy.Возможные стратегии:
-
none: эта стратегия означает, что задачи не выполняются. Это стратегия по умолчанию для запланированного обслуживания. -
gc: эта стратегия запускает задачуgc. -
geometric: эта стратегия выполняет геометрическую переупаковку pack-файлов и поддерживает актуальность вспомогательных структур данных. Стратегия удаляет устаревшие данные из reflog и удаляет рабочие деревья, которые больше нельзя обнаружить. Если при геометрической переупаковке было бы принято решение объединить всё в один pack-файл, стратегия вместо этого создаёт cruft-пакет для всех недостижимых объектов. Объекты, уже входящие в cruft-пакет, удаляются по истечении срока хранения.Эта стратегия переупаковки полностью заменяет стратегию
gcи рекомендуется для больших репозиториев. Это стратегия по умолчанию для ручного обслуживания. -
incremental: этот параметр оптимизирован для выполнения небольших задач обслуживания, не удаляющих данные. При нём задачаgcне планируется, зато задачиprefetchиcommit-graphвыполняются ежечасно, задачиloose-objectsиincremental-repack— ежедневно, а задачаpack-refs— еженедельно. При ручном обслуживании репозитория используется задачаgc.
-
- maintenance.<task>.enabled
-
Этот логический параметр конфигурации определяет, будет ли запускаться задача обслуживания с именем <task>, если для команды
--taskне указан параметрgitmaintenancerun. Эти значения конфигурации игнорируются, если задан параметр--task. По умолчанию значение true имеет толькоmaintenance.gc.enabled. - maintenance.<task>.schedule
-
Этот параметр конфигурации определяет, будет ли указанная задача <task> запускаться командой
gitmaintenancerun--schedule=<frequency>. Значение должно быть одним из следующих: «hourly», «daily» или «weekly». - maintenance.commit-graph.auto
-
Этот целочисленный параметр конфигурации определяет, как часто задача
commit-graphдолжна запускаться в рамкахgitmaintenancerun--auto. Если значение равно нулю, задачаcommit-graphне будет запускаться с параметром--auto. Отрицательное значение заставляет выполнять задачу каждый раз. Положительное значение означает, что команда должна запускаться, когда число достижимых коммитов, отсутствующих в файле commit-graph, не меньше значенияmaintenance.commit-graph.auto. Значение по умолчанию — 100. - maintenance.loose-objects.auto
-
Этот целочисленный параметр конфигурации определяет, как часто задача
loose-objectsдолжна запускаться в рамкахgitmaintenancerun--auto. Если значение равно нулю, задачаloose-objectsне будет запускаться с параметром--auto. Отрицательное значение заставляет выполнять задачу каждый раз. Положительное значение означает, что команда должна запускаться, когда число отдельных объектов не меньше значенияmaintenance.loose-objects.auto. Значение по умолчанию — 100. - maintenance.loose-objects.batchSize
-
Этот целочисленный параметр конфигурации определяет максимальное число отдельных объектов, записываемых в pack-файл во время выполнения задачи
loose-objects. Значение по умолчанию — пятьдесят тысяч. Укажите значение0, чтобы не устанавливать ограничение. - maintenance.incremental-repack.auto
-
Этот целочисленный параметр конфигурации определяет, как часто задача
incremental-repackдолжна запускаться в рамкахgitmaintenancerun--auto. Если значение равно нулю, задачаincremental-repackне будет запускаться с параметром--auto. Отрицательное значение заставляет выполнять задачу каждый раз. Положительное значение означает, что команда должна запускаться, когда число pack-файлов, не включённых в multi-pack-index, не меньше значенияmaintenance.incremental-repack.auto. Значение по умолчанию — 10. - maintenance.geometric-repack.auto
-
Этот целочисленный параметр конфигурации определяет, как часто задача
geometric-repackдолжна запускаться в рамкахgitmaintenancerun--auto. Если значение равно нулю, задачаgeometric-repackне будет запускаться с параметром--auto. Отрицательное значение заставляет выполнять задачу каждый раз. Положительное значение означает, что команда должна запускаться, если есть pack-файлы, которые необходимо объединить для сохранения геометрической прогрессии, либо если имеется как минимум указанное число отдельных объектов, которые будут записаны в новый pack-файл. Значение по умолчанию — 100. - maintenance.geometric-repack.splitFactor
-
Этот целочисленный параметр конфигурации определяет коэффициент геометрической последовательности. Подробности см. в параметре
--geometric=команды git-repack[1]. По умолчанию используется2. - maintenance.reflog-expire.auto
-
Этот целочисленный параметр конфигурации определяет, как часто задача
reflog-expireдолжна запускаться в рамкахgitmaintenancerun--auto. Если значение равно нулю, задачаreflog-expireне будет запускаться с параметром--auto. Отрицательное значение заставляет выполнять задачу каждый раз. Положительное значение означает, что команда должна запускаться, когда число устаревших записей в reflog «HEAD» не меньше значенияmaintenance.loose-objects.auto. Значение по умолчанию — 100. - maintenance.rerere-gc.auto
-
Этот целочисленный параметр конфигурации определяет, как часто задача
rerere-gcдолжна запускаться в рамкахgitmaintenancerun--auto. Если значение равно нулю, задачаrerere-gcне будет запускаться с параметром--auto. Отрицательное значение заставляет выполнять задачу каждый раз. При любом положительном значении команда запускается, если каталог «rr-cache» существует и содержит хотя бы одну запись, независимо от того, устарела она или нет. В будущем эта эвристика может быть уточнена. Значение по умолчанию — 1. - maintenance.worktree-prune.auto
-
Этот целочисленный параметр конфигурации определяет, как часто задача
worktree-pruneдолжна запускаться в рамкахgitmaintenancerun--auto. Если значение равно нулю, задачаworktree-pruneне будет запускаться с параметром--auto. Отрицательное значение заставляет выполнять задачу каждый раз. Положительное значение означает, что команда должна запускаться, когда число рабочих деревьев, подлежащих удалению, превышает это значение. Значение по умолчанию — 1. - man.viewer
-
Укажите программы, которые можно использовать для отображения справки в формате
man. См. git-help[1]. - man.<tool>.cmd
-
Укажите команду для вызова заданной программы просмотра man-страниц. Указанная команда выполняется в оболочке, а страница man передаётся ей в качестве аргумента. (См. git-help[1].)
- man.<tool>.path
-
Переопределите путь к указанному инструменту, который можно использовать для отображения справки в формате
man. См. git-help[1]. -
merge.conflictStyle -
Задаёт стиль записи конфликтующих фрагментов в файлы рабочего дерева при слиянии. По умолчанию используется «merge»: выводится маркер конфликта <<<<<<<, изменения одной стороны, маркер
=======, изменения другой стороны, а затем маркер >>>>>>>. Альтернативный стиль «diff3» добавляет маркер ||||||| и исходный текст перед маркером=======. Стиль «merge» обычно формирует меньшие конфликтующие области, чем diff3, как потому, что исходный текст исключён, так и потому, что совпадающие на обеих сторонах строки выделяются из области конфликта. Другой альтернативный стиль, «zdiff3», похож на diff3, но удаляет совпадающие строки обеих сторон из области конфликта, если они расположены близко к её началу или концу. -
merge.defaultToUpstream -
Если merge вызвана без аргумента-коммита, объединяет ветки, от которых зависит текущая ветка, используя их последние известные значения, сохранённые в ветках отслеживания удалённых репозиториев. Рассматриваются значения branch.<current branch>.merge, указывающие на ветки удалённого репозитория с именем, заданным параметром
branch.<current-branch>.remote; затем они сопоставляются с соответствующими ветками отслеживания удалённых репозиториев черезremote.<remote>.fetch, после чего объединяются вершины этих отслеживаемых веток. По умолчанию — true. -
merge.ff -
По умолчанию Git не создаёт дополнительный коммит слияния, если объединяемый коммит является потомком текущего. Вместо этого вершина текущей ветки перемещается вперёд без слияния. Если задано значение
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
<branch-name>».Элемент с пустым значением можно использовать для очистки списка 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 -
Выводить
gitdiff--diffstat--summaryORIG_HEAD. -
compact -
Выводить
gitdiff--compact-summaryORIG_HEAD.
Однако любое неизвестное значение (например, значение, добавленное в будущей версии Git) считается значением
true, а не вызывает ошибку. По умолчанию используется значениеtrue. -
-
merge.autoStash -
Если задано значение
true, перед началом операции автоматически создаётся временная запись stash, а после её завершения она применяется. Это позволяет выполнять слияние в рабочем дереве с незакоммиченными изменениями. Однако используйте этот параметр с осторожностью: применение stash после успешного слияния может привести к нетривиальным конфликтам. Этот параметр можно переопределить параметрами--no-autostashи--autostashкоманды git-merge[1]. По умолчанию используется значениеfalse. -
merge.tool -
Управляет выбором инструмента слияния для команды git-mergetool[1]. В списке ниже приведены допустимые встроенные значения. Любое другое значение рассматривается как пользовательский инструмент слияния; для него необходимо определить соответствующую переменную
mergetool.<tool>.cmd. -
merge.guitool -
Управляет выбором инструмента слияния для команды git-mergetool[1], если указан флаг
-g/--gui. В списке ниже приведены допустимые встроенные значения. Любое другое значение рассматривается как пользовательский инструмент слияния; для него необходимо определить соответствующую переменнуюmergetool.<guitool>.cmd.-
araxis
-
bc
-
codecompare
-
deltawalker
-
diffmerge
-
diffuse
-
ecmerge
-
emerge
-
examdiff
-
guiffy
-
gvimdiff
-
kdiff3
-
meld
-
nvimdiff
-
opendiff
-
p4merge
-
smerge
-
tkdiff
-
tortoisemerge
-
vimdiff
-
vscode
-
winmerge
-
xxdiff
-
-
merge.verbosity -
Управляет объёмом вывода, создаваемого рекурсивной стратегией слияния. Уровень 0 ничего не выводит, кроме итогового сообщения об ошибке, если обнаружены конфликты. Уровень 1 выводит только конфликты, уровень 2 — конфликты и изменения файлов. Уровень 5 и выше выводит отладочную информацию. По умолчанию используется уровень 2. Значение можно переопределить с помощью переменной окружения
GIT_MERGE_VERBOSITY. -
merge.<driver>.name -
Задаёт понятное человеку имя для пользовательского низкоуровневого драйвера слияния. Подробности см. в gitattributes[5].
-
merge.<driver>.driver -
Задаёт команду, реализующую пользовательский низкоуровневый драйвер слияния. Подробности см. в gitattributes[5].
-
merge.<driver>.recursive -
Задаёт имя низкоуровневого драйвера слияния, используемого при внутреннем слиянии общих предков. Подробности см. в gitattributes[5].
-
mergetool.<tool>.path -
Переопределяет путь к указанному инструменту. Это полезно, если инструмент отсутствует в
$PATH. -
mergetool.<tool>.cmd -
Задаёт команду для вызова указанного инструмента слияния. Команда выполняется в оболочке, где доступны следующие переменные:
BASE— имя временного файла с общей базовой версией файлов для слияния, если она доступна;LOCAL— имя временного файла с содержимым файла из текущей ветви;REMOTE— имя временного файла с содержимым файла из сливаемой ветви;MERGEDсодержит имя файла, в который инструмент слияния должен записать результаты успешного слияния. -
mergetool.<tool>.hideResolved -
Позволяет пользователю переопределить глобальное значение
mergetool.hideResolvedдля конкретного инструмента. Полное описание см. вmergetool.hideResolved. -
mergetool.<tool>.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.<variant>.layout -
Настраивает расположение разделённых окон для
<variant>vimdiff; допустимы значенияvimdiff,nvimdiff,gvimdiff. При запускеgitmergetoolс параметром--tool=<variant> (или без--tool, если дляmerge.toolзадано значение<variant>) Git проверитmergetool.<variant>.layout, чтобы определить расположение окон инструмента. Если конфигурация для конкретного варианта недоступна, используется значениеvimdiff' s. Если и оно недоступно, будет использовано расположение по умолчанию с четырьмя окнами. О настройке расположения см. разделBACKEND SPECIFIC HINTSв git-mergetool[1]. -
mergetool.hideResolved -
Во время слияния Git автоматически разрешает как можно больше конфликтов и записывает файл
$MERGED, содержащий маркеры конфликтов вокруг конфликтов, которые не удалось разрешить;$LOCALи$REMOTEобычно содержат версии файла до разрешения конфликтов Git. Этот флаг приводит к перезаписи$LOCALи$REMOTE, чтобы инструменту слияния передавались только неразрешённые конфликты. Можно настроить отдельно для каждого инструмента с помощью переменной конфигурацииmergetool.<tool>.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. Дополнительные сведения о каждой стратегии см. в разделе «NOTES MERGE STRATEGIES» в git-notes[1].Эту настройку можно переопределить, передав параметр
--strategyкоманде git-notes[1]. -
notes.<name>.mergeStrategy -
Стратегия слияния, выбираемая при слиянии заметок в
refs/notes/<name>. Переопределяет более общий параметрnotes.mergeStrategy. Дополнительные сведения о доступных стратегиях см. в разделе «NOTES MERGE STRATEGIES» в git-notes[1]. -
notes.displayRef -
Ссылка (или ссылки, если указана маска либо параметр задан несколько раз), из которой следует читать заметки при показе сообщений коммитов с помощью команд семейства
gitlog, в дополнение к набору по умолчанию, заданному параметромcore.notesRefилиGIT_NOTES_REF.Эту настройку можно переопределить переменной окружения
GIT_NOTES_DISPLAY_REF, значением которой должен быть список ссылок или масок, разделённых двоеточиями.Если указанные ссылки не существуют, будет выведено предупреждение; маски, которым не соответствует ни одна ссылка, молча игнорируются.
Эту настройку можно отключить параметром
--no-notesдля команд семейства git-log[1] либо параметром--notes=<ref>, принимаемым этими командами.Эффективное значение
core.notesRef(возможно, переопределённое значениемGIT_NOTES_REF) также неявно добавляется в список отображаемых ссылок. -
notes.rewrite.<command> -
При переписывании коммитов с помощью
<command>(в настоящее времяamendилиrebase), если значение этой переменной —false, git не будет копировать заметки из исходного коммита в переписанный. По умолчанию используется значениеtrue. См. также параметрnotes.rewriteRefниже.Эту настройку можно переопределить переменной окружения
GIT_NOTES_REWRITE_REF, значением которой должен быть список ссылок или масок, разделённых двоеточиями. -
notes.rewriteMode -
Определяет, что делать при копировании заметок во время переписывания (см. параметр
notes.rewrite.<command>), если целевой коммит уже содержит заметку. Должно быть задано одно из значений:overwrite,concatenate,cat_sort_uniqилиignore. По умолчанию используется значениеconcatenate.Эту настройку можно переопределить переменной окружения
GIT_NOTES_REWRITE_MODE. -
notes.rewriteRef -
При копировании заметок во время переписывания задаёт (полностью квалифицированную) ссылку, заметки из которой следует копировать. Можно указать маску; в этом случае будут скопированы заметки из всех подходящих ссылок. Эту настройку также можно задать несколько раз.
Значение по умолчанию отсутствует; чтобы включить переписывание заметок, необходимо настроить эту переменную. Задайте ей значение
refs/notes/commits, чтобы включить переписывание заметок для коммитов по умолчанию.Настройку можно переопределить переменной окружения
GIT_NOTES_REWRITE_REF. Дополнительное описание её формата см. выше в разделеnotes.rewrite.<command>. - pack.window
-
Размер окна, используемого командой git-pack-objects[1], если размер окна не указан в командной строке. По умолчанию — 10.
- pack.depth
-
Максимальная глубина дельт, используемая командой git-pack-objects[1], если максимальная глубина не указана в командной строке. По умолчанию — 50. Максимальное значение — 4095.
- pack.windowMemory
-
Максимальный объём памяти, который каждый поток команды git-pack-objects[1] может использовать для окна памяти пакета, если лимит не задан в командной строке. К значению можно добавить суффикс «k», «m» или «g». Если параметр не настроен (или явно установлен в 0), ограничение отсутствует.
- pack.compression
-
Целое число от -1 до 9, задающее уровень сжатия объектов в файле пакета. Значение -1 соответствует значению по умолчанию zlib. Значение 0 означает отсутствие сжатия, а значения от 1 до 9 задают различные компромиссы между скоростью и размером; значение 9 обеспечивает самое медленное сжатие. Если параметр не задан, используется значение core.compression. Если и оно не задано, используется -1 — значение zlib по умолчанию, которое представляет собой «компромисс между скоростью и сжатием (в настоящее время соответствует уровню 6)».
Обратите внимание: изменение уровня сжатия не приводит к автоматическому пересжатию всех существующих объектов. Принудительно пересжать их можно, передав параметр -F команде git-repack[1].
- pack.allowPackReuse
-
Если задано значение true или «single» и включены битовые карты достижимости, pack-objects попытается отправлять части файла пакета с битовой картой без изменений. Если задано значение «multi» и доступна битовая карта достижимости для нескольких пакетов, pack-objects попытается отправлять части всех пакетов в MIDX.
Если доступна только битовая карта для одного пакета, а для
pack.allowPackReuseзадано значение «multi», повторно используются части только файла пакета с битовой картой. Это может снизить расход памяти и процессорного времени при обслуживании fetch-запросов, но может привести к отправке немного большего пакета. По умолчанию используется значение true. - pack.island
-
Расширенное регулярное выражение, задающее набор островов дельт. Подробности см. в разделе «DELTA ISLANDS» в git-pack-objects[1].
- pack.islandCore
-
Задаёт имя острова, объекты которого должны быть упакованы первыми. Это создаёт в начале одного из пакетов своего рода псевдопакет, чтобы объекты указанного острова можно было быстрее скопировать в любой пакет, который будет передан пользователю, запросившему эти объекты. На практике это означает, что указанный остров, скорее всего, должен соответствовать наиболее часто клонируемой части репозитория. См. также раздел «DELTA ISLANDS» в git-pack-objects[1].
- pack.deltaCacheSize
-
Максимальный объём памяти в байтах, используемый для кэширования дельт командой git-pack-objects[1] перед их записью в пакет. Этот кэш ускоряет этап записи объектов, позволяя не вычислять повторно окончательный результат дельты после нахождения наилучшего соответствия для всех объектов. Однако перепаковка крупных репозиториев на машинах с нехваткой памяти может заметно замедлиться, особенно если из-за этого кэша система начнёт использовать подкачку. Значение 0 означает отсутствие ограничения. Минимальный размер — 1 байт; его можно использовать, чтобы фактически отключить кэш. По умолчанию — 256 МиБ.
- pack.deltaCacheLimit
-
Максимальный размер дельты, кэшируемой командой git-pack-objects[1]. Этот кэш ускоряет этап записи объектов, позволяя не вычислять повторно окончательный результат дельты после нахождения наилучшего соответствия для всех объектов. По умолчанию — 1000. Максимальное значение — 65535.
- pack.threads
-
Задаёт число потоков, запускаемых для поиска наилучших соответствий дельт. Для этого требуется, чтобы git-pack-objects[1] была собрана с поддержкой pthreads; в противном случае этот параметр игнорируется с предупреждением. Это позволяет сократить время упаковки на многопроцессорных машинах. Однако требуемый объём памяти для окна поиска дельт умножается на число потоков. Значение 0 заставляет Git автоматически определять число процессоров и соответствующим образом задавать число потоков.
- pack.indexVersion
-
Задаёт версию индекса пакета по умолчанию. Допустимые значения: 1 — устаревший формат индекса пакета, использовавшийся в версиях Git до 1.5.2; 2 — новый формат индекса пакета, поддерживающий пакеты размером более 4 ГБ и обеспечивающий надлежащую защиту от перепаковки повреждённых пакетов. По умолчанию используется версия 2. Обратите внимание: если соответствующий пакет превышает 2 ГБ, принудительно используется версия 2, а этот параметр конфигурации игнорируется.
Если у вас старая версия Git, не распознающая файл
*.idxверсии 2, клонирование или получение данных по протоколу, отличному от собственного (например, «http»), при котором копируются и файл*.pack, и соответствующий файл*.idxс другой стороны, может привести к созданию репозитория, недоступного для вашей старой версии Git. Однако если размер файла*.packменьше 2 ГБ, можно использовать git-index-pack[1] для файла *.pack, чтобы заново создать файл*.idx. - pack.packSizeLimit
-
Максимальный размер пакета. Эта настройка влияет только на упаковку в файл при повторной упаковке, то есть на протокол git:// она не влияет. Её можно переопределить параметром
--max-pack-sizeкоманды git-repack[1]. При достижении этого ограничения создаётся несколько файлов пакетов.Обратите внимание, что эта настройка редко бывает полезна и может привести к увеличению общего размера на диске (поскольку Git не будет хранить дельты между пакетами) и ухудшению производительности (поиск объектов в нескольких пакетах медленнее, чем в одном, а такие оптимизации, как битовые карты достижимости, не могут работать с несколькими пакетами).
Если вам необходимо активно использовать Git с файлами пакетов меньшего размера (например, потому что ваша файловая система не поддерживает большие файлы), эта настройка может помочь. Но если вы хотите передать файл пакета через носитель с ограничением по размеру (например, съёмный носитель, на котором не помещается весь репозиторий), скорее всего, лучше создать один большой файл пакета и разделить его с помощью универсальной программы для создания многотомных архивов (например, Unix
split).Минимально допустимый размер ограничен 1 МиБ. По умолчанию ограничение отсутствует. Поддерживаются распространённые суффиксы единиц измерения
k,mилиg. - pack.useBitmaps
-
Если значение равно true, Git будет использовать битовые карты пакетов (если они доступны) при упаковке в stdout (например, на стороне сервера во время fetch). По умолчанию — true. Обычно отключать эту настройку не нужно, за исключением случаев отладки битовых карт пакетов.
- pack.useBitmapBoundaryTraversal
-
Если значение равно true, Git будет использовать экспериментальный алгоритм для вычисления запросов достижимости с помощью битовых карт. Вместо построения полных битовых карт для всех исключённых вершин и последующего объединения их операцией OR, исключённые вершины с существующими битовыми картами рассматриваются как добавочные (то есть включаются в результат с помощью OR, если они существуют, и игнорируются в противном случае), а битовая карта строится на границе.
При использовании этого алгоритма Git может включить слишком много объектов, поскольку он не раскрывает деревья, принадлежащие определённым коммитам UNINTERESTING. Эта неточность соответствует алгоритму обхода без битовых карт.
Во многих случаях это может ускорить работу по сравнению с точным алгоритмом, особенно если покрытие битовыми картами исключённой части запроса недостаточно.
- pack.useSparse
-
Если значение равно true, Git по умолчанию будет использовать параметр
--sparseвgit pack-objects, если присутствует параметр--revs. Этот алгоритм обходит только деревья, встречающиеся в путях, в которых добавляются новые объекты. Это может значительно повысить производительность при вычислении пакета для отправки небольшого изменения. Однако в файл пакета могут попасть лишние объекты, если включённые коммиты содержат определённые типы прямых переименований. По умолчанию —true. - pack.usePathWalk
-
Включает по умолчанию параметр
--path-walkдля процессовgitpack-objects. Полное описание см. в git-pack-objects[1]. - pack.preferBitmapTips
-
Задаёт иерархию ссылок (например, "refs/heads/"); для указания нескольких иерархий этот параметр можно задать несколько раз. При выборе коммитов, для которых будут созданы битовые карты, предпочтение отдаётся коммиту на вершине ссылки, входящей в любую из настроенных иерархий.
Обратите внимание, что присвоение этому параметру значения
refs/foo/не означает, что коммиты на вершинахrefs/foo/barиrefs/foo/bazобязательно будут выбраны. Это связано с тем, что коммиты для битовых карт выбираются из последовательности окон переменной длины.Если в окне встречается коммит на вершине любой ссылки, являющейся суффиксом любого значения этого параметра, он немедленно получает преимущество перед любым другим коммитом в этом окне.
- pack.writeBitmaps (устаревший параметр)
-
Это устаревший синоним параметра
repack.writeBitmaps. - pack.writeBitmapHashCache
-
Если значение равно true, Git будет включать раздел «hash cache» в индекс битовых карт (если он записывается). Этот кэш можно использовать для эвристик Git при вычислении дельт, что потенциально позволяет получать более качественные дельты между объектами с битовыми картами и без них (например, при обслуживании fetch между старым пакетом с битовыми картами и объектами, отправленными после последнего gc). Недостаток в том, что для него требуется 4 байта дискового пространства на объект. По умолчанию — true.
При записи битовой карты достижимости для нескольких пакетов новые namehash не вычисляются; вместо этого все namehash, сохранённые в существующей битовой карте, переставляются в соответствующие позиции при записи новой битовой карты.
- pack.writeBitmapLookupTable
-
Если значение равно true, Git будет включать раздел «lookup table» в индекс битовых карт (если он записывается). Эта таблица позволяет отложить загрузку отдельных битовых карт как можно дольше. Это может быть полезно в репозиториях с относительно большими индексами битовых карт. По умолчанию — false.
- pack.readReverseIndex
-
Если значение равно true, Git будет читать все доступные файлы .rev (см. gitformat-pack[5]). Если значение равно false, обратный индекс будет создан с нуля и сохранён в памяти. По умолчанию — true.
- pack.writeReverseIndex
-
Если значение равно true, Git будет записывать соответствующий файл .rev (см. gitformat-pack[5]) для каждого нового файла пакета во всех случаях, кроме git-fast-import[1] и механизма массовой фиксации изменений. По умолчанию — true.
- pager.<cmd>
-
Если значение логическое, включает или отключает постраничный вывод результатов конкретной подкоманды Git при записи в tty. В противном случае включает постраничный вывод для подкоманды с помощью программы постраничного вывода, заданной значением
pager.<cmd>. Если в командной строке указан параметр--paginateили--no-pager, он имеет приоритет над этой настройкой. Чтобы отключить постраничный вывод для всех команд, задайте дляcore.pagerилиGIT_PAGERзначениеcat. - pretty.<name>
-
Псевдоним строки формата --pretty=, описанной в git-log[1]. Любые заданные здесь псевдонимы можно использовать так же, как встроенные форматы pretty. Например, выполнение
gitconfigpretty.changelog"format:*%H%s"приведёт к тому, что вызовgitlog--pretty=changelogбудет эквивалентен выполнениюgitlog"--pretty=format:*%H%s". Обратите внимание, что псевдоним с тем же именем, что и у встроенного формата, будет молча проигнорирован. - promisor.quiet
-
Если задано значение "true", при получении дополнительных объектов для частичного клона предполагается
--quiet. - promisor.advertise
-
Если задано значение "true", сервер будет использовать возможность "promisor-remote" (см. gitprotocol-v2[5]), чтобы сообщать об используемых им promisor-удалённых репозиториях, если таковые имеются. По умолчанию задано значение "false", то есть возможность "promisor-remote" не объявляется.
- promisor.sendFields
-
Список дополнительных имён полей, связанных с удалёнными репозиториями, разделённых запятыми или пробелами. При объявлении promisor-удалённых репозиториев с помощью возможности "promisor-remote" сервер отправляет эти имена полей и связанные с ними значения из своей конфигурации (см. gitprotocol-v2[5]). В настоящее время поддерживаются только имена полей "partialCloneFilter" и "token".
-
partialCloneFilter -
содержит фильтр частичного клонирования, используемый для удалённого репозитория.
-
token -
содержит токен аутентификации для удалённого репозитория.
Если имя поля входит в этот список, а на сервере задана соответствующая переменная конфигурации "remote.foo.<field-name>" с непустым значением, то имя поля и его значение отправляются при объявлении promisor-удалённого репозитория "foo".
Этот список не действует, если для переменной конфигурации "promisor.advertise" не задано значение "true"; поля "name" и "url" всегда объявляются независимо от этой настройки.
- promisor.acceptFromServer
-
Если задано значение "all", клиент принимает все promisor-удалённые репозитории, которые сервер может объявить с помощью возможности "promisor-remote". Если задано значение "knownName", клиент принимает promisor-удалённые репозитории, уже настроенные на клиенте и имеющие те же имена, что и объявленные клиентом. Это не очень безопасно, но может использоваться в корпоративной среде, где серверы и клиенты считаются надёжными и не будут менять имена и URL. Если задано значение "knownUrl", клиент принимает promisor-удалённые репозитории, для которых и имя, и URL, настроенные на клиенте, совпадают с объявленными сервером. Это безопаснее, чем "all" или "knownName", поэтому по возможности следует использовать именно этот вариант. По умолчанию задано значение "none", то есть ни один promisor-удалённый репозиторий, объявленный сервером, не будет принят. Принимая promisor-удалённый репозиторий, клиент соглашается с тем, что сервер может не включать в ответы на запросы клиента "fetch" и "clone" объекты, которые можно отложенно получить из этого promisor-удалённого репозитория. Сравнение имён и URL чувствительно к регистру. См. gitprotocol-v2[5].
- promisor.checkFields
-
Список дополнительных имён полей, связанных с удалёнными репозиториями, разделённых запятыми или пробелами. Прежде чем принять promisor-удалённый репозиторий, клиент проверяет, совпадают ли значения этих полей, переданные сервером, со значениями полей в собственной конфигурации. В настоящее время поддерживаются только поля "partialCloneFilter" и "token".
Если одно из этих имён полей (например, "token") проверяется для объявленного promisor-удалённого репозитория (например, "foo"), для успешного прохождения проверки этого поля должны выполняться три условия:
-
Соответствующая локальная настройка (например,
remote.foo.token) должна быть задана. -
Сервер должен объявить поле "token" для удалённого репозитория "foo".
-
Значение локально настроенного
remote.foo.tokenдолжно в точности совпадать со значением поля "token", объявленным сервером.
Если хотя бы одно из этих условий не выполнено для любого имени поля из списка
promisor.checkFields, объявленный удалённый репозиторий "foo" отклоняется.Для поля "partialCloneFilter" это позволяет клиенту убедиться, что фильтр сервера совпадает с ожидаемым локально, предотвращая несоответствия в поведении фильтрации. Для поля "token" это можно использовать для проверки соответствия учётных данных аутентификации ожидаемым значениям.
Значения полей сравниваются с учётом регистра.
Поля "name" и "url" всегда проверяются в соответствии с политикой
promisor.acceptFromServer, независимо от этой настройки.Имена и значения полей сервер должен передавать с помощью возможности "promisor-remote", используя переменную конфигурации
promisor.sendFields. Проверка полей выполняется только если для переменной конфигурацииpromisor.acceptFromServerне задано значение "None". Если задано значение "None", эта переменная конфигурации не действует. См. gitprotocol-v2[5]. -
- promisor.storeFields
-
Список дополнительных имён полей, связанных с удалёнными репозиториями, разделённых запятыми или пробелами. Если клиент принимает объявленный удалённый репозиторий, он сохранит в своей конфигурации значения этих полей из объявления удалённого репозитория, а затем перезагрузит конфигурацию удалённых репозиториев. В настоящее время поддерживаются только поля "partialCloneFilter" и "token".
Например, если сервер объявляет для удалённого репозитория "foo" значение "partialCloneFilter=blob:limit=20k" и этот удалённый репозиторий принят, значение "blob:limit=20k" будет сохранено для переменной конфигурации "remote.foo.partialCloneFilter".
Однако если новое значение поля из объявления удалённого репозитория совпадает с существующим значением этого поля для удалённого репозитория на стороне клиента, конфигурация клиента не изменяется.
При сохранении нового значения в stderr выводится сообщение, чтобы уведомить об этом пользователей.
Обратите внимание, что по соображениям безопасности, если удалённый репозиторий ещё не настроен на стороне клиента, для него ничего не сохраняется. В любом случае новый удалённый репозиторий не создаётся и URL не сохраняется.
Перед сохранением фильтр частичного клонирования разбирается, чтобы проверить его корректность. Если он некорректен, выводится предупреждение, и фильтр не сохраняется.
Перед сохранением токена проверяется, что он не содержит управляющих символов. Если проверка не пройдена, выводится предупреждение, и токен не сохраняется.
- protocol.allow
-
Если задано, определяет пользовательскую политику по умолчанию для всех протоколов, для которых явно не указана политика (
protocol.<name>.allow). По умолчанию, если настройка не задана, для известных безопасных протоколов (http, https, git, ssh) действует политикаalways, для известных опасных протоколов (ext) — политикаnever, а для всех остальных протоколов (включая file) — политикаuser. Поддерживаются следующие политики:-
always— протокол всегда можно использовать. -
never— протокол никогда нельзя использовать. -
user— протокол можно использовать, только еслиGIT_PROTOCOL_FROM_USERне задана или имеет значение 1. Эту политику следует использовать, если протокол должен быть доступен пользователю напрямую, но не должен использоваться командами, запускающими clone/fetch/push без участия пользователя, например при рекурсивной инициализации подмодулей.
-
- protocol.<name>.allow
-
Задаёт политику для протокола <name>, используемого командами clone/fetch/push. Доступные политики описаны выше в разделе
protocol.allow.В настоящее время Git использует следующие имена протоколов:
-
file: любой локальный путь к файлу (включая URLfile://или локальные пути) -
git: анонимный протокол git через прямое TCP-соединение (или прокси, если он настроен) -
ssh: git через ssh (включая синтаксисhost:path,ssh://и т. д.). -
http: git через http, как «умный http», так и «простой http». Обратите внимание: сюдаnotвходитhttps; если вы хотите настроить оба варианта, настройте каждый отдельно. -
внешние вспомогательные программы называются по имени своего протокола (например, используйте
hg, чтобы разрешить вспомогательную программуgit-remote-hg)
-
- protocol.version
-
Если задано, клиенты будут пытаться взаимодействовать с сервером, используя указанную версию протокола. Если сервер её не поддерживает, взаимодействие переключается на версию 0. Если настройка не задана, по умолчанию используется
2. Поддерживаемые версии:-
0— исходный протокол передачи данных. -
1— исходный протокол передачи данных с добавлением строки версии в начальный ответ сервера. -
2— протокол передачи данных версии 2; см. gitprotocol-v2[5].
-
- pull.ff
-
По умолчанию Git не создаёт дополнительный коммит слияния при слиянии коммита, являющегося потомком текущего коммита. Вместо этого вершина текущей ветки перемещается перемоткой вперёд. Если задано значение
false, эта переменная указывает Git создавать в таком случае дополнительный коммит слияния (эквивалентно передаче параметра--no-ffв командной строке). Если задано значениеonly, разрешены только такие слияния перемоткой вперёд (эквивалентно передаче параметра--ff-onlyв командной строке). При выполнении pull эта настройка переопределяетmerge.ff. - pull.rebase
-
Если значение равно true, перебазирует ветки поверх полученной ветки вместо слияния ветки по умолчанию из удалённого репозитория по умолчанию при выполнении "git pull". Чтобы задать это поведение отдельно для каждой ветки, см. "branch.<name>.rebase".
Если задано значение
merges(или простоm), передаёт параметр--rebase-mergesкомандеgit rebase, чтобы локальные коммиты слияния включались в перебазирование (подробности см. в git-rebase[1]).Если задано значение
interactive(или простоi), перебазирование выполняется в интерактивном режиме.ПРИМЕЧАНИЕ: эта операция может быть опасной; не используйте её, если не понимаете её последствий (подробности см. в git-rebase[1]).
- pull.octopus
-
Стратегия слияния по умолчанию при одновременном получении нескольких веток.
- pull.autoStash
-
Если значение равно true, автоматически создаёт временную запись stash для сохранения локальных изменений перед началом операции и восстанавливает их после её завершения. Это может быть удобно, когда "git pull" выполняет перебазирование (а не слияние): в отличие от pull со слиянием, которое допускает локальные изменения, не мешающие слиянию, pull с перебазированием отказывается работать при наличии любых локальных изменений.
Если задан параметр
pull.autostash(со значением true или false), параметрыmerge.autostashиrebase.autostashигнорируются. Если параметрpull.autostashвообще не задан, то в зависимости от значенияpull.rebaseиспользуется либоmerge.autostash, либоrebase.autostash. Можно переопределить параметром командной строки--[no-]autostash. - pull.twohead
-
Стратегия слияния по умолчанию при получении одной ветки.
-
push.autoSetupRemote -
Если задано значение
true, предполагает--set-upstreamпри отправке по умолчанию, если для текущей ветки не существует отслеживаемой upstream-ветки; эта настройка действует с параметрамиpush.default,simpleиupstreamкомандыcurrent. Это полезно, если вы хотите, чтобы новые ветки по умолчанию отправлялись в удалённый репозиторий по умолчанию (как при поведенииpush.default=current), а также хотите настроить отслеживание upstream-ветки. Вероятнее всего, эта настройка будет полезна в централизованных рабочих процессахsimple, где ожидается, что все ветки будут иметь одинаковые имена в удалённом репозитории. -
push.default -
Определяет действие, которое должна выполнять команда
gitpush, если спецификация ссылки не задана (в командной строке, конфигурации или где-либо ещё). Разные значения подходят для разных рабочих процессов; например, в полностью централизованном рабочем процессе (то есть когда источник fetch совпадает с назначением push) наиболее подходящим, вероятно, будетupstream. Возможные значения:-
nothing -
ничего не отправлять (завершиться с ошибкой), если не задана спецификация ссылки. В первую очередь предназначено для тех, кто хочет избежать ошибок, всегда указывая параметры явно.
-
current -
отправить текущую ветку, чтобы обновить ветку с тем же именем на принимающей стороне. Подходит как для централизованных, так и для нецентрализованных рабочих процессов.
-
upstream -
отправить текущую ветку обратно в ветку, изменения из которой обычно интегрируются в текущую ветку (она называется
@{upstream}). Этот режим имеет смысл только при отправке в тот же репозиторий, из которого обычно выполняется получение (то есть в централизованном рабочем процессе). -
tracking -
устаревший синоним параметра
upstream. -
simple -
отправить текущую ветку в удалённый репозиторий под тем же именем.
Для этого режима необходимо знать, в какой удалённый репозиторий выполняется отправка. При отправке обратно в тот же удалённый репозиторий, из которого вы выполняете получение, у текущей ветки также должна быть отслеживаемая upstream-ветка с тем же именем.
Этот режим используется по умолчанию начиная с Git 2.0 и является самым безопасным вариантом для начинающих.
-
matching -
отправить все ветки, имеющие одинаковые имена на обоих концах. Благодаря этому репозиторий, в который вы отправляете изменения, запоминает набор отправляемых веток (например, если вы всегда отправляете туда
maintиmaster, но не другие ветки, в репозитории назначения будут эти две ветки, и ваши локальныеmaintиmasterбудут туда отправлены).Чтобы эффективно использовать этот режим, перед запуском
gitpushнеобходимо убедиться, чтоallвсе ветки, которые вы собираетесь отправить, готовы к отправке, поскольку этот режим предназначен для отправки всех веток за один раз. Если вы обычно заканчиваете работу только над одной веткой и отправляете результат, пока другие ветки ещё не завершены, этот режим вам не подходит. Кроме того, этот режим не подходит для отправки в общий центральный репозиторий, поскольку другие люди могут добавлять туда новые ветки или обновлять вершины существующих веток без вашего контроля.Раньше это значение использовалось по умолчанию, но начиная с Git 2.0 это не так (новое значение по умолчанию —
simple).
-
-
push.followTags -
Если задано значение true, по умолчанию включается параметр
--follow-tags. Эту настройку можно переопределить при отправке, указав--no-follow-tags. -
push.gpgSign -
Может иметь логическое значение или строку
if-asked. Значение true приводит к тому, что все отправки подписываются GPG, как если бы команде git-push[1] был передан параметр--signed. Строкаif-askedприводит к подписыванию отправок, если сервер поддерживает такую возможность, как если бы командеgitpushбыл передан параметр--signed=if-asked. Значение false может переопределить значение из файла конфигурации с более низким приоритетом. Явный параметр командной строки всегда имеет приоритет над этой настройкой. -
push.pushOption -
Если в командной строке не задан аргумент
--push-option=<option>, командаgitpushведёт себя так, как если бы каждое значение<option>этой переменной было задано в виде--push-option=<option>.Эта переменная может иметь несколько значений; пустое значение в файле конфигурации с более высоким приоритетом (например,
.git/configв репозитории) позволяет очистить значения, унаследованные из файлов конфигурации с более низким приоритетом (например,$HOME/.gitconfig).Example: /etc/gitconfig push.pushoption = a push.pushoption = b ~/.gitconfig push.pushoption = c repo/.git/config push.pushoption = push.pushoption = b This will result in only b (a and c are cleared).
-
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, отключить использование bitmap-индексов дляgitpush, даже еслиpack.useBitmapsимеет значениеtrue, не запрещая другим операциям Git использовать bitmap-индексы. По умолчанию —true. - rebase.backend
-
Бэкенд по умолчанию для выполнения перебазирования. Возможные варианты:
applyилиmerge. В будущем, если бэкенд merge получит все оставшиеся возможности бэкенда apply, эта настройка может стать ненужной. - rebase.stat
-
Показывать ли статистику различий изменений в upstream с момента последнего перебазирования. По умолчанию — false.
- rebase.autoSquash
-
Если установлено значение true, по умолчанию включить параметр
--autosquashкоманды git-rebase[1] для интерактивного режима. Это можно переопределить параметром--no-autosquash. - rebase.autoStash
-
Если установлено значение true, автоматически создать временную запись в stash перед началом операции и применить её после завершения операции. Это позволяет запускать перебазирование в рабочем дереве с незакоммиченными изменениями. Однако используйте эту возможность осторожно: применение 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в списке todo. По умолчанию — "ignore". - rebase.instructionFormat
-
Строка формата, заданная в соответствии с git-log[1], которая будет использоваться для списка todo при интерактивном перебазировании. Хеш коммита автоматически добавляется в начало формата.
- rebase.abbreviateCommands
-
Если установлено значение true,
gitrebaseбудет использовать сокращённые имена команд в списке todo, в результате чего он будет выглядеть примерно так:p deadbee The oneline of the commit p fa1afe1 The oneline of the next commit ...вместо:
pick deadbee The oneline of the commit pick fa1afe1 The oneline of the next commit ...По умолчанию — 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для соответствующих свободных ссылок). - receive.advertiseAtomic
-
По умолчанию git-receive-pack объявляет клиентам поддержку атомарной отправки. Если вы не хотите объявлять эту возможность, задайте для этой переменной значение false.
- receive.advertisePushOptions
-
Если установлено значение true, git-receive-pack объявляет клиентам поддержку параметров отправки. По умолчанию — false.
- receive.autogc
-
По умолчанию git-receive-pack запускает "git maintenance run --auto" после получения данных от git-push и обновления ссылок. Чтобы отключить это поведение, задайте для этой переменной значение false.
- receive.certNonceSeed
-
Если задать для этой переменной строковое значение,
gitreceive-packбудет приниматьgitpush--signedи проверять его с помощью nonce, защищённого HMAC с этой строкой в качестве секретного ключа. - receive.certNonceSlop
-
Если
gitpush--signedотправляет сертификат отправки с nonce, выданным receive-pack, обслуживающим тот же репозиторий, в течение указанного числа секунд, экспортировать nonce из сертификата вGIT_PUSH_CERT_NONCEдля хуков (вместо значения, которое receive-pack попросил включить отправляющую сторону). Это может несколько упростить написание проверок вpre-receiveиpost-receive. Вместо проверки переменной средыGIT_PUSH_CERT_NONCE_SLOP, которая указывает, на сколько секунд nonce просрочен, чтобы решить, принимать ли сертификат, им достаточно проверить, чтоGIT_PUSH_CERT_NONCE_STATUSимеет значениеOK. - receive.fsckObjects
-
Если установлено значение true, git-receive-pack проверяет все полученные объекты. Описание проверок см. в
transfer.fsckObjects. По умолчанию — false. Если значение не задано, вместо него используется значениеtransfer.fsckObjects. - receive.fsck.<msg-id>
-
Действует так же, как
fsck.<msg-id>, но используется командой git-receive-pack[1], а не git-fsck[1]. Подробности см. в документацииfsck.<msg-id>. - receive.fsck.skipList
-
Действует так же, как
fsck.skipList, но используется командой git-receive-pack[1], а не git-fsck[1]. Подробности см. в документацииfsck.skipList. - receive.keepAlive
-
После получения pack-файла от клиента
receive-packможет не выдавать никаких данных (если указан параметр--quiet) во время обработки pack-файла, из-за чего некоторые сети разрывают TCP-соединение. Если этот параметр задан, иreceive-packне передаёт данные на этом этапе в течениеreceive.keepAliveсекунд, он отправит короткий пакет keepalive. Значение по умолчанию — 5 секунд; задайте 0, чтобы полностью отключить keepalive-пакеты. - receive.unpackLimit
-
Если число объектов, полученных при отправке, меньше этого предела, объекты будут распакованы в отдельные файлы объектов. Если число полученных объектов равно этому пределу или превышает его, полученный pack-файл будет сохранён как pack-файл после добавления всех недостающих базовых дельт. Сохранение pack-файла при отправке может ускорить завершение операции, особенно в медленных файловых системах. Если значение не задано, вместо него используется значение
transfer.unpackLimit. - receive.maxInputSize
-
Если размер входящего потока pack-файла превышает этот предел, git-receive-pack завершится с ошибкой, а не примет pack-файл. Если значение не задано или равно 0, размер не ограничен.
- receive.denyDeletes
-
Если установлено значение true, git-receive-pack отклоняет обновление ссылки, которое удаляет эту ссылку. Используйте этот параметр, чтобы запретить удаление ссылки посредством отправки.
- receive.denyDeleteCurrent
-
Если установлено значение true, git-receive-pack отклоняет обновление ссылки, удаляющее текущую выбранную ветку в репозитории без рабочего дерева.
- receive.denyCurrentBranch
-
Если установлено значение true или "refuse", git-receive-pack отклоняет обновление ссылки текущей выбранной ветки в репозитории без рабочего дерева. Такая отправка потенциально опасна, поскольку приводит к рассинхронизации HEAD с индексом и рабочим деревом. Если установлено значение "warn", предупреждение о такой отправке выводится в stderr, но отправка разрешается. Если установлено значение false или "ignore", такая отправка разрешается без сообщения. По умолчанию — "refuse".
Другой вариант — "updateInstead": при отправке в текущую ветку он обновит рабочее дерево. Этот вариант предназначен для синхронизации рабочих каталогов, когда к одной из сторон трудно получить доступ через интерактивный ssh (например, к работающему веб-сайту; поэтому рабочий каталог должен быть чистым). Этот режим также удобен при разработке внутри виртуальной машины для тестирования и исправления кода в разных операционных системах.
По умолчанию "updateInstead" отклоняет отправку, если рабочее дерево или индекс отличаются от HEAD, но для настройки этого поведения можно использовать хук
push-to-checkout. См. githooks[5]. - receive.denyNonFastForwards
-
Если установлено значение true, git-receive-pack отклоняет обновление ссылки, которое не является перемоткой вперёд. Используйте этот параметр, чтобы запретить такое обновление посредством отправки, даже если отправка выполняется принудительно. Эта переменная конфигурации устанавливается при инициализации общего репозитория.
- receive.hideRefs
-
Эта переменная аналогична
transfer.hideRefs, но применяется только кreceive-pack(и поэтому влияет на отправку, но не на получение). Попытка обновить или удалить скрытую ссылку с помощьюgitpushотклоняется. - receive.procReceiveRefs
-
Это многозначная переменная, задающая префиксы ссылок для сопоставления с командами в
receive-pack. Команды, соответствующие этим префиксам, выполняются внешним хуком "proc-receive", а не внутренней функциейexecute_commands. Если эта переменная не задана, хук "proc-receive" никогда не используется, а все команды выполняются внутренней функциейexecute_commands.Например, если для этой переменной задано значение "refs/for", отправка в ссылку, например "refs/for/master", не создаст и не обновит ссылку с именем "refs/for/master", но может напрямую создать или обновить запрос на включение изменений, запустив хук "proc-receive".
В начале значения можно указать необязательные модификаторы, чтобы фильтровать команды по конкретным действиям: создание (a), изменение (m), удаление (d). В модификаторы можно включить
!, чтобы инвертировать запись префикса ссылки. Например:git config --system --add receive.procReceiveRefs ad:refs/heads git config --system --add receive.procReceiveRefs !:refs/heads
- receive.updateServerInfo
-
Если установлено значение true, git-receive-pack запускает git-update-server-info после получения данных от git-push и обновления ссылок.
- receive.shallowUpdate
-
Если установлено значение true, файл .git/shallow можно обновлять, когда для новых ссылок требуются новые неглубокие корни. В противном случае эти ссылки отклоняются.
- reftable.blockSize
-
Размер в байтах, используемый бэкендом reftable при записи блоков. Размер блока определяется средством записи и не обязательно должен быть степенью двойки. Размер блока должен превышать длину самого длинного имени ссылки или записи журнала в репозитории, поскольку ссылки не могут занимать несколько блоков.
Рекомендуются степени двойки, удобные для системы виртуальной памяти или файловой системы (например, 4kB или 8kB). Больший размер (64kB) может обеспечить лучшее сжатие, но потенциально увеличит затраты на чтение при доступе.
Максимальный размер блока —
16777215байт (15.99 MiB). Значение по умолчанию —4096байт (4kB). Значение0означает использование значения по умолчанию. - reftable.restartInterval
-
Интервал создания точек перезапуска. Бэкенд reftable определяет точки перезапуска при создании файла. Для меньших размеров блоков (4k или 8k) может быть удобнее создавать точку каждые 16 записей, а для больших размеров блоков (64k) — каждые 64.
Более частое создание точек перезапуска уменьшает эффективность сжатия префиксов и увеличивает объём таблицы перезапуска; оба фактора увеличивают размер файла.
Более редкое создание точек перезапуска повышает эффективность сжатия префиксов и уменьшает общий размер файла, но увеличивает затраты на чтение из-за необходимости обходить больше записей после этапа двоичного поиска.
Поддерживается не более
65535точек перезапуска на блок.По умолчанию точка перезапуска создаётся каждые 16 записей. Значение
0означает использование значения по умолчанию. - reftable.indexObjects
-
Должен ли бэкенд reftable записывать блоки объектов. Блоки объектов представляют собой обратное соответствие идентификаторов объектов ссылкам, указывающим на них.
Значение по умолчанию —
true. - reftable.geometricFactor
-
При добавлении новой таблицы в стек бэкенд reftable выполняет автоматическую компактизацию, чтобы количество таблиц оставалось небольшим. Для этого бэкенд обеспечивает, чтобы размеры таблиц образовывали геометрическую последовательность.
По умолчанию в геометрической последовательности используется коэффициент 2, то есть каждая следующая по размеру таблица должна быть как минимум вдвое больше предыдущей. Поддерживается максимальный коэффициент 256.
- reftable.lockTimeout
-
При добавлении новой таблицы в стек бэкенд reftable должен заблокировать центральный файл "tables.list" перед его обновлением. Эта настройка определяет, как долго процесс будет ждать получения блокировки, если её уже получил другой процесс. Значение 0 означает отсутствие повторных попыток; -1 означает бесконечные попытки. По умолчанию — 100 (то есть повторять попытки в течение 100 мс).
- remote.pushDefault
-
Удалённый репозиторий, в который выполняется отправка по умолчанию. Переопределяет
branch.<name>.remoteдля всех веток и переопределяется параметромbranch.<name>.pushRemoteдля отдельных веток. - remote.<name>.url
-
URL удалённого репозитория. См. git-fetch[1] или git-push[1]. Для настроенного удалённого репозитория можно указать несколько URL; в этом случае первый используется для получения, а все — для отправки (если не задан параметр
remote.<name>.pushurl). Если задать для этого ключа пустую строку, список URL будет очищен, что позволит переопределить более раннюю настройку. - remote.<name>.pushurl
-
URL отправки для удалённого репозитория. См. git-push[1]. Если для настроенного удалённого репозитория задан параметр
pushurl, он используется для отправки вместоremote.<name>.url. Для настроенного удалённого репозитория можно указать несколько URL отправки; в этом случае отправка выполняется во все указанные адреса. Если задать для этого ключа пустую строку, список URL будет очищен, что позволит переопределить более раннюю настройку. - remote.<name>.proxy
-
Для удалённых репозиториев, требующих curl (http, https и ftp), URL прокси-сервера, используемого для этого удалённого репозитория. Чтобы отключить использование прокси для этого удалённого репозитория, задайте пустую строку.
- remote.<name>.proxyAuthMethod
-
Для удалённых репозиториев, требующих curl (http, https и ftp), метод аутентификации на используемом прокси-сервере (вероятно, задаваемый в
remote.<name>.proxy). См.http.proxyAuthMethod. - remote.<name>.fetch
-
Набор "refspec" по умолчанию для git-fetch[1]. См. git-fetch[1].
- remote.<name>.push
-
Набор "refspec" по умолчанию для git-push[1]. См. git-push[1].
- remote.<name>.mirror
-
Если установлено значение true, отправка в этот удалённый репозиторий будет автоматически выполняться так, как если бы в командной строке был указан параметр
--mirror. - remote.<name>.skipDefaultUpdate
-
Устаревший синоним
remote.<name>.skipFetchAll(если в файлах конфигурации заданы оба параметра с разными значениями, будет использовано значение последнего вхождения). - remote.<name>.skipFetchAll
-
Если установлено значение true, этот удалённый репозиторий будет пропускаться при обновлении с помощью git-fetch[1] и подкоманды
updateкоманды git-remote[1], а также игнорироваться задачей предварительного полученияgitmaintenance. - remote.<name>.receivepack
-
Программа по умолчанию, запускаемая на удалённой стороне при отправке. См. параметр --receive-pack команды git-push[1].
- remote.<name>.uploadpack
-
Программа по умолчанию, запускаемая на удалённой стороне при получении. См. параметр --upload-pack команды git-fetch-pack[1].
- remote.<name>.tagOpt
-
Если задать для этого значения --no-tags, автоматическое получение тегов при получении данных с удалённого репозитория <name> будет отключено. Если задать --tags, будут получены все теги удалённого репозитория <name>, даже если они недостижимы из вершин веток удалённого репозитория. Передача этих флагов непосредственно команде git-fetch[1] может переопределить эту настройку. См. параметры --tags и --no-tags команды git-fetch[1].
- remote.<name>.vcs
-
Если задать значение <vcs>, Git будет взаимодействовать с удалённым репозиторием с помощью вспомогательной программы git-remote-<vcs>.
- remote.<name>.prune
-
Если установлено значение true, получение данных с этого удалённого репозитория по умолчанию также удалит все ссылки отслеживания удалённых веток, которых больше нет в удалённом репозитории (как если бы в командной строке был указан параметр
--prune). Переопределяет настройкиfetch.prune, если они заданы. - remote.<name>.pruneTags
-
Если установлено значение true, получение данных с этого удалённого репозитория по умолчанию также удалит локальные теги, которых больше нет в удалённом репозитории, если очистка в целом включена через
remote.<name>.prune,fetch.pruneили--prune. Переопределяет настройкиfetch.pruneTags, если они заданы.См. также
remote.<name>.pruneи раздел PRUNING в git-fetch[1]. - remote.<name>.promisor
-
Если установлено значение true, этот удалённый репозиторий будет использоваться для получения обещанных объектов.
- remote.<name>.partialclonefilter
-
Фильтр, применяемый при получении данных с этого удалённого репозитория-источника обещанных объектов. Изменение или очистка этого значения повлияет только на получение новых коммитов. Чтобы получить связанные объекты для коммитов, уже присутствующих в локальной базе объектов, используйте параметр
--refetchкоманды git-fetch[1]. - remote.<name>.serverOption
-
Набор параметров сервера по умолчанию, используемых при получении данных с этого удалённого репозитория. Эти параметры сервера можно переопределить аргументами командной строки
--server-option=.Это многозначная переменная; пустое значение можно использовать в файле конфигурации с более высоким приоритетом (например,
.git/configв репозитории), чтобы очистить значения, унаследованные из файлов конфигурации с более низким приоритетом (например,$HOME/.gitconfig). - remote.<name>.negotiationRestrict
-
При согласовании с этим удалённым репозиторием во время
gitfetchограничить коммиты, объявляемые в строках "have", только коммитами, достижимыми из ссылок, соответствующих заданным шаблонам. Этот многозначный параметр конфигурации действует так же, как параметр--negotiation-restrictв командной строке.Каждое значение — это точное имя ссылки (например,
refs/heads/release) или шаблон glob (например,refs/heads/release/*). Синтаксис шаблонов такой же, как у--negotiation-restrict.Эти значения конфигурации используются по умолчанию для параметра командной строки
--negotiation-restrict. Если в командной строке указан--negotiation-restrict(или его синоним--negotiation-tip), значения конфигурации не используются.Эти значения также влияют на согласование во время
gitpush, если включён параметрpush.negotiate.Пустые значения означают, что все предыдущие значения следует игнорировать, позволяя сбросить список в более широких конфигурациях.
- remote.<name>.negotiationInclude
-
При согласовании с этим удалённым репозиторием во время
gitfetchклиент объявляет список существующих локально коммитов. В репозиториях со множеством ссылок этот список "haves" может быть усечён. В зависимости от структуры данных исключение некоторых ссылок может быть затратным. Этот многозначный параметр конфигурации задаёт ссылки, хеши коммитов или шаблоны glob ссылок, вершины которых всегда следует отправлять в качестве коммитов "have" при согласовании во время получения данных с этого удалённого репозитория.Каждое значение — это точное имя ссылки (например,
refs/heads/release), хеш коммита или шаблон glob (например,refs/heads/release/*). Синтаксис шаблонов такой же, как у--negotiation-include.Эти значения конфигурации используются по умолчанию для параметра командной строки
--negotiation-include. Если в командной строке указан--negotiation-include, значения конфигурации не используются.Этот параметр дополняет обычный процесс согласования: алгоритм согласования по-прежнему выполняется и объявляет выбранные им коммиты, но ссылки, соответствующие
remote.<name>.negotiationInclude, отправляются безусловно в дополнение к коммитам, выбранным эвристически.Эти значения также влияют на согласование во время
gitpush, если включён параметрpush.negotiate.Пустые значения означают, что все предыдущие значения следует игнорировать, позволяя сбросить список в более широких конфигурациях.
- remote.<name>.followRemoteHEAD
-
Как git-fetch[1] должен обрабатывать обновления
remotes/<name>/HEADпри получении данных с использованием настроенных refspec удалённого репозитория. Значение по умолчанию — "create": оно создастremotes/<name>/HEAD, если такая ссылка существует в удалённом репозитории, но отсутствует локально; уже существующую локальную ссылку это не затронет. Значение "warn" выводит сообщение, если значение в удалённом репозитории отличается от локального; если локальной ссылки нет, поведение такое же, как при значении "create". Вариант значения "warn" — "warn-if-not-$branch": он работает как "warn", но не выводит сообщение, еслиHEADв удалённом репозитории — это$branch. Значение "always" без предупреждения обновляетremotes/<name>/HEAD, устанавливая значение из удалённого репозитория. Наконец, значение "never" запрещает изменять или создавать локальную ссылку. - remotes.<group>
-
Список удалённых репозиториев, данные из которых получаются командой "git remote update <group>". См. git-remote[1].
- repack.useDeltaBaseOffset
-
По умолчанию git-repack[1] создаёт пакеты, использующие смещения баз дельт. Если необходимо совместно использовать ваш репозиторий с Git версии старше 1.4.4 — напрямую или через простой протокол, например http, — задайте для этого параметра значение "false" и выполните перепаковку. Доступ к репозиторию из старых версий Git по встроенному протоколу этот параметр не затрагивает.
- repack.packKeptObjects
-
Если задано значение true, команда
gitrepackработает так, как если бы ей передали--pack-kept-objects. Подробности см. в git-repack[1]. Обычно по умолчанию используется значениеfalse, но если создаётся bitmap-индекс (с помощью--write-bitmap-indexилиrepack.writeBitmaps), используется значениеtrue. - repack.useDeltaIslands
-
Если задано значение true, команда
gitrepackработает так, как если бы ей передали--delta-islands. По умолчанию используется значениеfalse. - repack.writeBitmaps
-
Если задано значение true, Git создаёт bitmap-индекс при упаковке всех объектов на диск (например, при запуске
gitrepack-a). Этот индекс может ускорить этап «подсчёта объектов» при последующем создании пакетов для клонирования и получения данных, ценой некоторого объёма дискового пространства и дополнительного времени на первоначальную перепаковку. Этот параметр не действует, если создаётся несколько файлов пакетов. По умолчанию для голых репозиториев задано значение true, а для остальных — false. - repack.updateServerInfo
-
Если задано значение false, git-repack[1] не запускает git-update-server-info[1]. По умолчанию используется значение true. При значении true этот параметр можно переопределить параметром
-nкоманды git-repack[1]. - repack.cruftWindow
- repack.cruftWindowMemory
- repack.cruftDepth
- repack.cruftThreads
-
Параметры, используемые командой git-pack-objects[1] при создании cruft-пакета, если соответствующие параметры не заданы в командной строке. Значения по умолчанию и описание см. в одноимённых переменных конфигурации
pack.*. - repack.midxMustContainCruft
-
Если задано значение true, git-repack[1] безусловно включит cruft-пакеты, если они есть, в индекс нескольких пакетов при запуске с параметром
--write-midx. При значении false cruft-пакеты включаются в MIDX только при необходимости (например, если они могут потребоваться для формирования замыкания достижимости с bitmap-индексами MIDX). По умолчанию используется значение true. - repack.midxSplitFactor
-
Коэффициент, используемый в условии геометрического объединения при уплотнении инкрементальных слоёв MIDX во время
gitrepackпри запуске с параметром--write-midx=incremental.Соседние слои объединяются, если накопленное число объектов в более новом слое превышает
1/<N> от числа объектов в следующем, более глубоком слое. Значение должно быть не меньше 2. По умолчанию используется значение 2. - repack.midxNewLayerThreshold
-
Минимальное число пакетов в верхнем слое MIDX, при достижении которого эти пакеты рассматриваются как кандидаты на геометрическую перепаковку во время
gitrepack--write-midx=incremental.Если в верхнем слое меньше пакетов, чем задано этим пороговым значением, эти пакеты полностью исключаются из геометрической перепаковки и остаются без изменений. Значение должно быть не меньше 1. По умолчанию используется значение 8.
- rerere.autoUpdate
-
Если задано значение true,
git-rerereобновляет индекс полученным содержимым после успешного разрешения конфликтов с помощью ранее записанных решений. По умолчанию используется значение false. - rerere.enabled
-
Включает запись разрешённых конфликтов, чтобы при повторном возникновении идентичные фрагменты конфликтов можно было разрешить автоматически. По умолчанию git-rerere[1] включена, если в
$GIT_DIRесть каталогrr-cache, например, если в репозитории ранее использовалась команда "rerere". - revert.reference
-
Если задать для этой переменной значение true, команда
gitrevertбудет работать так, как если бы ей передали параметр--reference. - safe.bareRepository
-
Указывает, с какими голыми репозиториями будет работать Git. Поддерживаются следующие значения:
-
all: Git работает со всеми голыми репозиториями. Это значение по умолчанию в Git 2.x. -
explicit: Git работает только с голыми репозиториями, указанными с помощью параметра командной строки верхнего уровня--git-dirили переменной окруженияGIT_DIR(см. git[1]). Это будет значением по умолчанию в Git 3.0.
Если в вашем рабочем процессе не используются голые репозитории, может быть полезно задать
safe.bareRepositoryзначениеexplicitв глобальной конфигурации. Это защитит от атак, при которых клонируется репозиторий, содержащий голый репозиторий, а затем в этом каталоге запускается команда Git.Если вы регулярно используете голые репозитории и хотите сохранить текущее поведение после обновления до Git 3.0, задайте для
safe.bareRepositoryзначениеallв глобальной или системной конфигурации.Этот параметр конфигурации учитывается только в защищённой конфигурации (см. SCOPES). Это не позволяет недоверенным репозиториям изменять его значение.
-
- safe.directory
-
Эти записи конфигурации указывают отслеживаемые Git каталоги, которые считаются безопасными, даже если принадлежат не текущему пользователю. По умолчанию Git отказывается даже разбирать конфигурацию репозитория, принадлежащего другому пользователю, не говоря уже о запуске его хуков. Этот параметр конфигурации позволяет пользователям задавать исключения, например для намеренно общих репозиториев (см. параметр
--sharedкоманды git-init[1]).Этот параметр может иметь несколько значений: например, можно добавить несколько каталогов с помощью
gitconfig--add. Чтобы сбросить список безопасных каталогов (например, переопределить каталоги, заданные в системной конфигурации), добавьте записьsafe.directoryс пустым значением.Этот параметр конфигурации учитывается только в защищённой конфигурации (см. SCOPES). Это не позволяет недоверенным репозиториям изменять его значение.
Значение этого параметра подставляется:
~/<path> раскрывается в путь относительно домашнего каталога, а%(prefix)/<path> — в путь относительно (временного) префикса Git.Чтобы полностью отключить эту проверку безопасности, задайте для
safe.directoryстроковое значение*. Тогда все репозитории будут считаться так, как если бы их каталоги были указаны в спискеsafe.directory. Еслиsafe.directory=*задан в системной конфигурации и вы хотите снова включить эту защиту, сначала инициализируйте список пустым значением, а затем перечислите репозитории, которые считаете безопасными. Указание каталога с добавленным к нему/*разрешит доступ ко всем репозиториям внутри указанного каталога.Как пояснялось выше, по умолчанию Git разрешает доступ только к репозиториям, принадлежащим самому пользователю, то есть пользователю, запустившему Git. Однако если Git запущен от имени
rootна платформе, отличной от Windows, где доступна команда sudo, Git проверяет переменную окружения SUDO_UID, которую создаёт sudo, и разрешает доступ к UID, записанному в её значении, в дополнение к ID изroot. Это упрощает распространённую последовательность действий при установке: "make && sudo make install". Процесс Git, запущенный от имениsudo, работает от имениroot, но командаsudoэкспортирует переменную окружения, в которой записан ID исходного пользователя. Если такое поведение вам не подходит и вы хотите, чтобы Git доверял только репозиториям, принадлежащим root, удалите переменнуюSUDO_UIDиз окружения root перед запуском Git. - sendemail.identity
-
Идентификатор конфигурации. Если он задан, значения из подраздела
sendemail.<identity> имеют приоритет над значениями разделаsendemail. Идентификатор по умолчанию — это значениеsendemail.identity. - sendemail.smtpEncryption
-
Описание см. в git-send-email[1]. Обратите внимание: на этот параметр не распространяется механизм
identity. - sendemail.smtpSSLCertPath
-
Путь к сертификатам центра сертификации (каталог или отдельный файл). Чтобы отключить проверку сертификатов, задайте пустую строку.
- sendemail.smtpSSLClientCert
-
Путь к файлу сертификата клиента, который следует предоставить по запросу сервера. Это необходимо, если сервер настроен на проверку сертификатов клиентов. Если соответствующий закрытый ключ не включён в файл, его необходимо указать с помощью
sendemail.smtpSSLClientKeyили параметра--smtp-ssl-client-key. - sendemail.smtpSSLClientKey
-
Путь к файлу закрытого ключа клиента, соответствующего сертификату клиента. Во избежание ошибок конфигурации этот параметр необходимо использовать вместе с
sendemail.smtpSSLClientCertили параметром--smtp-ssl-client-cert. Если ключ клиента включён в сертификат клиента, выбор закрытого ключа зависит от формата сертификата. Подробности см. на странице https://metacpan.org/pod/IO::Socket::SSL. - sendemail.<identity>.*
-
Версии параметров
sendemail.*, перечисленных ниже, для конкретного идентификатора. При выборе этого идентификатора они имеют приоритет над остальными значениями — независимо от того, выбран он через командную строку или с помощьюsendemail.identity. - sendemail.multiEdit
-
Если задано значение
true(по умолчанию), для редактирования файлов запускается один экземпляр редактора (патчей при использовании--annotateи сводки при использовании--compose). Если задано значениеfalse, файлы редактируются по очереди, с запуском нового редактора для каждого файла. - sendemail.confirm
-
Задаёт значение по умолчанию для подтверждения перед отправкой. Возможные значения:
always,never,cc,composeилиauto. Описание этих значений см. в разделе--confirmдокументации git-send-email[1]. - sendemail.mailmap
-
Если задано значение
true, команда git-send-email[1] предполагает--mailmap; в противном случае предполагается--no-mailmap. По умолчанию используетсяFalse. - sendemail.mailmap.file
-
Путь к дополнительному файлу mailmap, специфичному для git-send-email[1]. Сначала загружаются mailmap по умолчанию и
mailmap.file. Поэтому записи в этом файле имеют приоритет над записями в расположениях mailmap по умолчанию. См. gitmailmap[5]. - sendemail.mailmap.blob
-
Аналогично
sendemail.mailmap.file, но значение рассматривается как ссылка на blob в репозитории. Записи вsendemail.mailmap.fileимеют приоритет над записями здесь. См. gitmailmap[5]. - sendemail.aliasesFile
-
Чтобы не вводить длинные адреса электронной почты, укажите здесь один или несколько файлов псевдонимов электронной почты. Также необходимо указать
sendemail.aliasFileType. - sendemail.aliasFileType
-
Формат файла или файлов, указанных в sendemail.aliasesFile. Возможные значения:
mutt,mailrc,pine,elm,gnusилиsendmail.Примеры файлов псевдонимов в каждом формате приведены в документации соответствующих почтовых программ. Отличия от стандартных форматов и их ограничения описаны ниже:
- sendmail
-
-
Псевдонимы и адреса в кавычках не поддерживаются: строки, содержащие символ
", игнорируются. -
Перенаправление в файл (
/path/name) или канал (|command) не поддерживается. -
Подключение файлов (
:include:/path/name) не поддерживается. -
Для всех явно неподдерживаемых конструкций и любых других строк, не распознанных анализатором, в стандартный поток ошибок выводятся предупреждения.
-
- sendemail.annotate
- sendemail.bcc
- sendemail.cc
- sendemail.ccCmd
- sendemail.chainReplyTo
- sendemail.envelopeSender
- sendemail.from
- sendemail.headerCmd
- sendemail.signedOffByCc
- sendemail.smtpPass
- sendemail.suppressCc
- sendemail.suppressFrom
- sendemail.to
- sendemail.toCmd
- sendemail.smtpDomain
- sendemail.smtpServer
- sendemail.smtpServerPort
- sendemail.smtpServerOption
- sendemail.smtpUser
- sendemail.imapSentFolder
- sendemail.useImapOnly
- sendemail.thread
- sendemail.transferEncoding
- sendemail.validate
- sendemail.xmailer
-
Все эти переменные конфигурации задают значения по умолчанию для параметров командной строки git-send-email[1]. Подробности см. в документации команды.
- sendemail.outlookidfix
-
Если задано значение
true, команда git-send-email[1] предполагает--outlook-id-fix; если задано значениеfalse, предполагается--no-outlook-id-fix. Если параметр не задан, поведение такое же, как если бы--outlook-id-fixне был указан. - sendemail.signedOffCc (устарел)
-
Устаревший псевдоним для
sendemail.signedOffByCc. - sendemail.smtpBatchSize
-
Число сообщений, отправляемых через одно соединение; после этого выполняется повторный вход. Если значение равно
0или не задано, все сообщения отправляются через одно соединение. См. также параметр--batch-sizeкоманды git-send-email[1]. - sendemail.smtpReloginDelay
-
Время в секундах ожидания перед повторным подключением к SMTP-серверу. См. также параметр
--relogin-delayкоманды git-send-email[1]. - sendemail.forbidSendmailVariables
-
Чтобы избежать распространённых ошибок конфигурации, git-send-email[1] прерывает работу с предупреждением, если заданы какие-либо параметры конфигурации для
sendmail. Задайте этой переменной значение, чтобы отключить проверку. - sequence.editor
-
Текстовый редактор, используемый командой
gitrebase-iдля редактирования файла инструкций rebase. При использовании это значение интерпретируется оболочкой. Его можно переопределить переменной окруженияGIT_SEQUENCE_EDITOR. Если параметр не задан, вместо него используется редактор сообщений коммитов по умолчанию. - showBranch.default
-
Набор веток по умолчанию для git-show-branch[1]. См. git-show-branch[1].
- sideband.allowControlCharacters
-
По умолчанию управляющие символы, передаваемые через дополнительный канал, маскируются, за исключением цветовых последовательностей ANSI. Это предотвращает передачу в терминал потенциально нежелательных управляющих последовательностей ANSI. Используйте этот параметр конфигурации, чтобы изменить такое поведение (значение может представлять собой список следующих ключевых слов, разделённых запятыми):
-
color -
Разрешает цветовые последовательности ANSI, символы перевода строки и горизонтальные табуляции, но маскирует все остальные управляющие символы. Это значение используется по умолчанию.
-
cursor -
Разрешает управляющие последовательности, перемещающие курсор. По умолчанию отключено.
-
erase -
Разрешает управляющие последовательности, стирающие символы. По умолчанию отключено.
-
false -
Маскирует все управляющие символы, кроме символов перевода строки и горизонтальной табуляции.
-
true -
Разрешает передавать в терминал все управляющие символы.
-
- sideband.<url>.*
-
Применяет параметр
sideband.*выборочно к конкретным URL. Используется та же логика сопоставления URL, что и для параметровhttp.<url>.*. - sparse.expectFilesOutsideOfPatterns
-
При разреженном извлечении файлы, не соответствующие ни одному шаблону разреженности, обычно помечаются в индексе битом SKIP_WORKTREE и отсутствуют в рабочем дереве. Поэтому Git обычно проверяет, действительно ли файлы с битом SKIP_WORKTREE отсутствуют в рабочем дереве, как и предполагается. Если Git обнаруживает такие файлы, он помечает соответствующие пути как присутствующие, сбрасывая соответствующие биты SKIP_WORKTREE. Этот параметр сообщает Git, что наличие таких пропущенных файлов ожидаемо, и отключает их проверку.
По умолчанию используется значение
false, позволяющее Git автоматически исправлять ситуацию, когда списки файлов в индексе и рабочем дереве расходятся.Задайте значение
true, если во внешней среде Git освобождён от ответственности за согласованность между наличием файлов в рабочем дереве и шаблонами разреженности. Например, если у вас есть совместимая с Git виртуальная файловая система с надёжным механизмом синхронизации рабочего дерева и шаблонов разреженности на основе обращений к файлам.Независимо от значения этого параметра Git не проверяет наличие пропущенных файлов, если разреженное извлечение не включено. Поэтому этот параметр конфигурации действует только тогда, когда
core.sparseCheckoutимеет значениеtrue. - splitIndex.maxPercentChange
-
При использовании функции разделённого индекса этот параметр задаёт процент записей разделённого индекса относительно общего числа записей в разделённом и общем индексах, при превышении которого создаётся новый общий индекс. Значение должно находиться в диапазоне от 0 до 100. Если значение равно 0, новый общий индекс создаётся всегда; если оно равно 100, новый общий индекс не создаётся никогда. По умолчанию используется значение 20: новый общий индекс создаётся, если число записей в разделённом индексе превышает 20 процентов от общего числа записей. См. git-update-index[1].
-
При использовании функции разделённого индекса файлы общих индексов, не изменявшиеся в течение периода, заданного этой переменной, удаляются при создании нового файла общего индекса. Значение "now" немедленно удаляет все записи, а "never" полностью отключает удаление по сроку давности. Значение по умолчанию — "2.weeks.ago". Обратите внимание: для целей удаления по сроку давности файл общего индекса считается изменённым каждый раз, когда на его основе создаётся новый файл разделённого индекса или когда из него выполняется чтение. См. git-update-index[1].
- ssh.variant
-
По умолчанию Git определяет аргументы командной строки на основе базового имени настроенной команды SSH (задается с помощью переменной среды
GIT_SSHилиGIT_SSH_COMMANDлибо параметра конфигурацииcore.sshCommand). Если базовое имя не распознано, Git попытается определить поддержку параметров OpenSSH: сначала вызовет настроенную команду SSH с параметром-G(вывод конфигурации), а затем будет использовать параметры OpenSSH (если проверка завершится успешно) либо не будет использовать никаких параметров, кроме имени хоста и удаленной команды (если проверка не удастся).Переменной конфигурации
ssh.variantможно задать значение, переопределяющее это определение. Допустимые значения:ssh(использовать параметры OpenSSH),plink,putty,tortoiseplink,simple(не использовать параметры, кроме имени хоста и удаленной команды). Автоматическое определение по умолчанию можно явно запросить, указав значениеauto. Любое другое значение обрабатывается какssh. Этот параметр также можно переопределить с помощью переменной средыGIT_SSH_VARIANT.Текущие параметры командной строки, используемые для каждого варианта:
-
ssh- [-p port] [-4] [-6] [-o option] [username@]host command -
simple- [username@]host command -
plinkилиputty- [-P port] [-4] [-6] [username@]host command -
tortoiseplink- [-P port] [-4] [-6] -batch [username@]host command
За исключением варианта
simple, параметры командной строки могут меняться по мере появления в Git новых возможностей. -
-
stash.index -
Если установлено значение true, команды
gitstashapplyиgitstashpopбудут вести себя так, как если бы был указан параметр--index. По умолчанию — false. См. описания в git-stash[1].Это также влияет на вызовы git-stash[1] с помощью
--autostashиз таких команд, как git-merge[1], git-rebase[1] и git-pull[1]. -
stash.showIncludeUntracked -
Если установлено значение true, команда
gitstashshowбудет показывать неотслеживаемые файлы записи stash. По умолчанию — false. См. описание команды 'show' в git-stash[1]. -
stash.showPatch -
Если установлено значение true, команда
gitstashshowбез параметров будет показывать запись stash в виде патча. По умолчанию — false. См. описание команды 'show' в git-stash[1]. -
stash.showStat -
Если установлено значение true, команда
gitstashshowбез параметров будет показывать diffstat записи stash. По умолчанию — true. См. описание команды 'show' в git-stash[1]. - status.relativePaths
-
По умолчанию git-status[1] показывает пути относительно текущего каталога. Если задать этой переменной значение
false, пути будут показаны относительно корня репозитория (до v1.5.4 это было поведением Git по умолчанию). - status.short
-
Установите значение true, чтобы по умолчанию включить --short в git-status[1]. Параметр --no-short имеет приоритет над этой переменной.
- status.branch
-
Установите значение true, чтобы по умолчанию включить --branch в git-status[1]. Параметр --no-branch имеет приоритет над этой переменной.
- status.aheadBehind
-
Установите значение true, чтобы включить
--ahead-behind, и false, чтобы включить--no-ahead-behindпо умолчанию в git-status[1] для форматов статуса, отличных от porcelain. По умолчанию — true. - status.compareBranches
-
Разделенный пробелами список спецификаторов сравнения веток для использования в git-status[1]. В настоящее время поддерживаются только
@{upstream}и@{push}. Они интерпретируются какbranch@{upstream}иbranch@{push}для текущей ветки.Если параметр не задан, используется поведение по умолчанию, эквивалентное
@{upstream}, которое сравнивает ветку с настроенной отслеживаемой веткой upstream.Записи отображаются в порядке, в котором они указаны в конфигурации. Повторяющиеся записи, указывающие на одну и ту же ссылку, отбрасываются после первого вхождения, поэтому
@{push}@{upstream}@{push}показывает не более двух сравнений. Если@{upstream}и@{push}указывают на одну и ту же отслеживаемую удаленную ветку, отображается только одно сравнение.Пример:
[status] compareBranches = @{upstream} @{push}В этом случае будут показаны сравнения текущей ветки как с настроенной веткой upstream, так и с отслеживаемой веткой для отправки.
- status.displayCommentPrefix
-
Если установлено значение true, git-status[1] будет добавлять префикс комментария перед каждой строкой вывода (начиная с
core.commentChar, то есть по умолчанию с#). Так вел себя git-status[1] в Git 1.8.4 и более ранних версиях. По умолчанию — false. - status.renameLimit
-
Количество файлов, рассматриваемых при обнаружении переименований в git-status[1] и git-commit[1]. По умолчанию используется значение diff.renameLimit.
- status.renames
-
Определяет, выполняет ли Git обнаружение переименований в git-status[1] и git-commit[1], и каким образом. Если задано значение "false", обнаружение переименований отключается. Если задано значение "true", включается базовое обнаружение переименований. При значении "copies" или "copy" Git также будет обнаруживать копирования. По умолчанию используется значение diff.renames.
- status.showStash
-
Если установлено значение true, git-status[1] будет показывать количество записей, находящихся в stash. По умолчанию — false.
- status.showUntrackedFiles
-
По умолчанию git-status[1] и git-commit[1] показывают файлы, которые Git в данный момент не отслеживает. Каталоги, содержащие только неотслеживаемые файлы, отображаются только по имени каталога. Для показа неотслеживаемых файлов Git должен выполнить lstat() для всех файлов во всем репозитории, что может замедлить работу в некоторых системах. Поэтому эта переменная управляет тем, как команды отображают неотслеживаемые файлы. Возможные значения:
-
no— не показывать неотслеживаемые файлы. -
normal— показывать неотслеживаемые файлы и каталоги. -
all— показывать также отдельные файлы в неотслеживаемых каталогах.
Если эта переменная не задана, по умолчанию используется
normal. Все стандартные варианты записи логического значенияtrueтрактуются какnormal, аfalse— какno. Эту переменную можно переопределить с помощью параметра -u|--untracked-files команд git-status[1] и git-commit[1]. -
- status.submoduleSummary
-
По умолчанию — false. Если задать ненулевое числовое значение или true (эквивалентно -1 или неограниченному количеству), будет включена сводка по подмодулям и показана сводка коммитов для измененных подмодулей (см. параметр --summary-limit команды git-submodule[1]). Обратите внимание: вывод сводки команды подавляется для всех подмодулей, если
diff.ignoreSubmodulesзадано какall, либо только для тех подмодулей, для которых заданоsubmodule.<name>.ignore=all. Единственное исключение из этого правила: status и commit покажут подготовленные изменения подмодулей. Чтобы также просматривать сводку по игнорируемым подмодулям, можно использовать параметр командной строки --ignore-submodules=dirty или командуgit submodule summary, которая выводит похожую информацию, но не учитывает эти настройки. - submodule.<name>.url
-
URL подмодуля. Эта переменная копируется из файла .gitmodules в конфигурацию git с помощью
git submodule init. Пользователь может изменить настроенный URL перед получением подмодуля с помощьюgit submodule update. Если не заданы ни submodule.<name>.active, ни submodule.active, наличие этой переменной используется как запасной способ определить, представляет ли подмодуль интерес для команд git. Подробности см. в git-submodule[1] и gitmodules[5]. - submodule.<name>.update
-
Метод обновления подмодуля командой
git submodule update, единственной командой, на которую влияет этот параметр; другие команды, напримерgit checkout --recurse-submodules, не затрагиваются. Параметр сохранен по историческим причинам: когда-тоgit submoduleбыла единственной командой для работы с подмодулями; такие параметры, какsubmodule.activeиpull.rebase, имеют более узкую область действия. Значение задается командойgitsubmoduleinitна основе файла gitmodules[5]. См. описание командыupdateв git-submodule[1]. - submodule.<name>.branch
-
Имя удаленной ветки для подмодуля, используемое командой
gitsubmoduleupdate--remote. Задайте этот параметр, чтобы переопределить значение из файла.gitmodules. Подробности см. в git-submodule[1] и gitmodules[5]. - submodule.<name>.fetchRecurseSubmodules
-
Этот параметр управляет рекурсивным получением данных для данного подмодуля. Его можно переопределить параметром командной строки --[no-]recurse-submodules команд "git fetch" и "git pull". Этот параметр имеет приоритет над значением из файла gitmodules[5].
- submodule.<name>.ignore
-
Определяет, при каких условиях "git status" и семейство команд diff показывают подмодуль как измененный. При значении "all" подмодуль никогда не считается измененным. Тем не менее его можно подготовить к коммиту с помощью параметра --force, после чего он появится в выводе status. При значении "dirty" игнорируются все изменения рабочего дерева подмодуля и учитываются только различия между HEAD подмодуля и коммитом, записанным в суперпроекте. Значение "untracked" дополнительно приводит к отображению подмодулей с измененными отслеживаемыми файлами в рабочем дереве. При значении "none" (по умолчанию) подмодуль также отображается как измененный, если в его рабочем дереве есть неотслеживаемые файлы. Этот параметр переопределяет любые настройки для данного подмодуля в .gitmodules; оба параметра можно переопределить в командной строке с помощью параметра "--ignore-submodules". На команды
git submoduleэта настройка не влияет. - submodule.<name>.active
-
Логическое значение, указывающее, представляет ли подмодуль интерес для команд git. Этот параметр конфигурации имеет приоритет над параметром конфигурации submodule.active. Подробности см. в gitsubmodules[7].
- submodule.<name>.gitdir
-
Задает путь gitdir для подмодуля <name>. Эта настройка учитывается, если включен
extensions.submodulePathConfig; в противном случае она не действует. Если настройка включена, этот параметр становится единственным источником данных о путях gitdir подмодулей, и Git выдаст ошибку, если путь не задан. Подробности см. в git-config[1]. - submodule.active
-
Повторяющееся поле, содержащее спецификацию пути для сопоставления с путем подмодуля и определения, представляет ли он интерес для команд git. Подробности см. в gitsubmodules[7].
- submodule.recurse
-
Логическое значение, указывающее, должны ли команды по умолчанию включать параметр
--recurse-submodules. По умолчанию — false.Если установлено значение true, этот параметр можно отключить с помощью параметра
--no-recurse-submodules. Обратите внимание: некоторые команды Git, у которых нет этого параметра, могут вызывать некоторые из перечисленных выше команд, на которые влияетsubmodule.recurse; например,gitremoteupdateвызоветgitfetch, но не имеет параметра--no-recurse-submodules. Для таких команд можно временно изменить значение конфигурации с помощьюgit-csubmodule.recurse=0.В следующем списке перечислены команды, принимающие
--recurse-submodules, и указано, поддерживаются ли они этой настройкой.-
checkout,fetch,grep,pull,push,read-tree,reset,restoreиswitchподдерживаются всегда. -
cloneиls-filesне поддерживаются. -
branchподдерживается, только если включенsubmodule.propagateBranches.
-
- submodule.propagateBranches
-
[ЭКСПЕРИМЕНТАЛЬНО] Логическое значение, включающее поддержку веток при использовании
--recurse-submodulesилиsubmodule.recurse=true. Включение этого параметра позволит некоторым командам принимать--recurse-submodules, а некоторые команды, уже принимающие--recurse-submodules, начнут учитывать ветки. По умолчанию — false. - submodule.fetchJobs
-
Задает количество подмодулей, получаемых или клонируемых одновременно. Положительное целое число задает максимальное количество подмодулей, обрабатываемых параллельно. Значение 0 означает использование разумного значения по умолчанию. Если параметр не задан, по умолчанию используется 1.
- submodule.alternateLocation
-
Задает способ получения альтернативных ссылок подмодулями при клонировании. Возможные значения:
no,superproject. По умолчанию предполагаетсяno, при котором ссылки не добавляются. Если задано значениеsuperproject, клонируемый подмодуль вычисляет расположение своих альтернативных ссылок относительно альтернатив суперпроекта. - submodule.alternateErrorStrategy
-
Задает способ обработки ошибок альтернативных ссылок подмодуля, вычисляемых с помощью
submodule.alternateLocation. Возможные значения:ignore,info,die. По умолчанию используетсяdie. Обратите внимание: если задано значениеignoreилиinfoи при работе с вычисленной альтернативной ссылкой возникает ошибка, клонирование продолжается так, как если бы альтернативная ссылка не была указана. -
tag.forceSignAnnotated -
Логическое значение, определяющее, должны ли создаваемые аннотированные теги подписываться с помощью GPG. Если в командной строке указан
--annotate, он имеет приоритет над этим параметром. -
tag.sort -
Эта переменная управляет порядком сортировки тегов при их отображении командой git-tag[1]. Если параметр
--sort=<value> не задан, значение этой переменной используется по умолчанию. -
tag.gpgSign -
Логическое значение, определяющее, должны ли все теги подписываться с помощью GPG. Использование этого параметра при запуске автоматизированного сценария может привести к подписанию большого количества тегов. Поэтому удобно использовать агент, чтобы не вводить парольную фразу GPG несколько раз. Обратите внимание: этот параметр не влияет на поведение при подписании тегов, включаемое параметрами
-u<keyid> или--local-user=<keyid>. - tar.umask
-
Эту переменную можно использовать для ограничения битов прав доступа записей архива tar. По умолчанию используется 0002, отключающее право записи для всех пользователей. Специальное значение "user" означает, что вместо этого будет использоваться umask архивирующего пользователя. См. umask(2) и git-archive[1].
Параметры конфигурации Trace2 считываются только из системных и глобальных файлов конфигурации; аргументы командной строки -c, а также локальные файлы конфигурации репозитория и рабочего дерева не учитываются.
- trace2.normalTarget
-
Эта переменная управляет назначением для обычного вывода. Её можно переопределить с помощью переменной окружения
GIT_TRACE2. В следующей таблице приведены возможные значения. - trace2.perfTarget
-
Эта переменная управляет назначением для вывода производительности. Её можно переопределить с помощью переменной окружения
GIT_TRACE2_PERF. В следующей таблице приведены возможные значения. - trace2.eventTarget
-
Эта переменная управляет назначением для вывода событий. Её можно переопределить с помощью переменной окружения
GIT_TRACE2_EVENT. В следующей таблице приведены возможные значения.-
0илиfalse— отключает назначение. -
1илиtrue— записывает вSTDERR. -
[
2-9] — записывает в уже открытый файловый дескриптор. -
<absolute-pathname> — записывает в файл в режиме добавления. Если назначение уже существует и является каталогом, трассировки будут записываться в файлы (по одному для каждого процесса) внутри указанного каталога.
-
af_unix:[<socket-type>:]<absolute-pathname> — записывает в доменный сокет Unix (на платформах, которые их поддерживают). Тип сокета может бытьstreamилиdgram; если он не указан, Git попробует оба варианта.
-
- trace2.normalBrief
-
Логическое значение. Если значение равно true, поля
time,filenameиlineне включаются в обычный вывод. Значение можно переопределить с помощью переменной окруженияGIT_TRACE2_BRIEF. По умолчанию — false. - trace2.perfBrief
-
Логическое значение. Если значение равно true, поля
time,filenameиlineне включаются в вывод PERF. Значение можно переопределить с помощью переменной окруженияGIT_TRACE2_PERF_BRIEF. По умолчанию — false. - trace2.eventBrief
-
Логическое значение. Если значение равно true, поля
time,filenameиlineне включаются в вывод событий. Значение можно переопределить с помощью переменной окруженияGIT_TRACE2_EVENT_BRIEF. По умолчанию — false. - trace2.eventNesting
-
Целое число. Указывает желаемую глубину вложенных областей в выводе событий. Области, глубина которых превышает это значение, не включаются в вывод. Значение можно переопределить с помощью переменной окружения
GIT_TRACE2_EVENT_NESTING. По умолчанию — 2. - trace2.configParams
-
Список через запятую шаблонов «важных» параметров конфигурации, которые следует записывать в вывод trace2. Например,
core.*,remote.*.urlприведёт к тому, что вывод trace2 будет содержать события со списком каждой настроенной удалённой копии. Значение можно переопределить с помощью переменной окруженияGIT_TRACE2_CONFIG_PARAMS. По умолчанию не задано. - trace2.envVars
-
Список через запятую «важных» переменных окружения, которые следует записывать в вывод trace2. Например,
GIT_HTTP_USER_AGENT,GIT_CONFIGприведёт к тому, что вывод trace2 будет содержать события со значениями переопределений для пользовательского агента HTTP и расположения файла конфигурации Git (если они заданы). Значение можно переопределить с помощью переменной окруженияGIT_TRACE2_ENV_VARS. По умолчанию не задано. - trace2.destinationDebug
-
Логическое значение. Если значение равно true, Git выводит сообщения об ошибках, когда не удаётся открыть назначение трассировки для записи. По умолчанию эти ошибки подавляются, а трассировка молча отключается. Значение можно переопределить с помощью переменной окружения
GIT_TRACE2_DST_DEBUG. - trace2.maxFiles
-
Целое число. При записи файлов трассировки в целевой каталог не записывать дополнительные трассировки, если это приведёт к превышению указанного количества файлов. Вместо этого создаётся файл-маркер, блокирующий дальнейшую трассировку в этот каталог. По умолчанию — 0, что отключает эту проверку.
-
trailer.separators -
Этот параметр задаёт символы, которые распознаются как разделители завершающих строк. По умолчанию в качестве разделителя завершающих строк распознаётся только
:, однако=всегда принимается в командной строке для совместимости с другими командами git.Первый символ, указанный этим параметром, будет символом по умолчанию, если в конфигурации для этой завершающей строки не задан другой разделитель.
Например, если значение этого параметра —
%=$, то завершающими строками будут считаться только строки формата<key><sep><value>, у которых<sep>содержит%,=или$, за которыми следуют пробелы. При этом%будет разделителем по умолчанию, поэтому завершающие строки по умолчанию будут выглядеть так: <key>%<value> (между ключом и значением будет один знак процента и один пробел). -
trailer.where -
Этот параметр задаёт место добавления новой завершающей строки.
Значением может быть
end(по умолчанию),start,afterилиbefore.Если задано значение
end, каждая новая завершающая строка будет добавляться в конец существующих завершающих строк.Если задано значение
start, каждая новая завершающая строка будет добавляться в начало, а не в конец существующих завершающих строк.Если задано значение
after, каждая новая завершающая строка будет добавляться сразу после последней завершающей строки с таким же<key>.Если задано значение
before, каждая новая завершающая строка будет добавляться сразу перед первой завершающей строкой с таким же<key>. -
trailer.ifexists -
Этот параметр позволяет выбрать действие, которое будет выполнено, если во входных данных уже есть хотя бы одна завершающая строка с таким же
<key>.Допустимые значения этого параметра:
addIfDifferentNeighbor(по умолчанию),addIfDifferent,add,replaceилиdoNothing.При значении
addIfDifferentNeighborновая завершающая строка добавляется, только если выше или ниже строки, куда будет добавлена новая завершающая строка, нет завершающей строки с такой же парой (<key>,<value>).При значении
addIfDifferentновая завершающая строка добавляется, только если во входных данных ещё нет завершающей строки с такой же парой (<key>,<value>).При значении
addновая завершающая строка добавляется, даже если во входных данных уже есть завершающие строки с такой же парой (<key>,<value>).При значении
replaceсуществующая завершающая строка с таким же<key>удаляется, а новая завершающая строка добавляется. Удаляется ближайшая завершающая строка (с таким же<key>) к месту добавления новой.При значении
doNothingничего не происходит; то есть новая завершающая строка не добавляется, если во входных данных уже есть строка с таким же<key>. -
trailer.ifmissing -
Этот параметр позволяет выбрать действие, которое будет выполнено, если во входных данных ещё нет завершающей строки с таким же
<key>.Допустимые значения этого параметра:
add(по умолчанию) иdoNothing.При значении
addдобавляется новая завершающая строка.При значении
doNothingничего не происходит. -
trailer.<key-alias>.key -
Определяет
<key-alias>для<key>.<key-alias>должен быть префиксом (регистр не учитывается)<key>. Например, вgitconfigtrailer.ack.key"Acked-by"Acked-by— это<key>, аack— это<key-alias>. Эта настройка позволяет использовать в командной строке более короткий вызов--trailer"ack:..."с «ack» <key-alias> вместо более длинного--trailer"Acked-by:...".В конце
<key>может стоять разделитель, за которым следуют пробелы. По умолчанию единственным допустимым разделителем является:, но его можно изменить с помощью переменной конфигурацииtrailer.separators.Если в ключе есть разделитель, он переопределяет разделитель по умолчанию при добавлении завершающей строки.
-
trailer.<key-alias>.where -
Этот параметр принимает те же значения, что и переменная конфигурации
trailer.where, и переопределяет её значение для завершающих строк с указанным<key-alias>. -
trailer.<key-alias>.ifexists -
Этот параметр принимает те же значения, что и переменная конфигурации
trailer.ifexists, и переопределяет её значение для завершающих строк с указанным<key-alias>. -
trailer.<key-alias>.ifmissing -
Этот параметр принимает те же значения, что и переменная конфигурации
trailer.ifmissing, и переопределяет её значение для завершающих строк с указанным<key-alias>. -
trailer.<key-alias>.command -
Устарел; вместо него следует использовать
trailer.<key-alias>.cmd. Этот параметр работает так же, какtrailer.<key-alias>.cmd, за исключением того, что указанной команде не передаются аргументы. Вместо этого первое вхождение подстроки$ARGзаменяется на<value>, которое было бы передано в качестве аргумента.Обратите внимание, что
$ARGв команде пользователя заменяется только один раз, а исходный способ замены$ARGнебезопасен.Если для одного и того же
<key-alias>заданы иtrailer.<key-alias>.cmd, иtrailer.<key-alias>.command, используетсяtrailer.<key-alias>.cmd, аtrailer.<key-alias>.commandигнорируется. -
trailer.<key-alias>.cmd -
Этот параметр позволяет указать команду оболочки, которая будет вызвана один раз для автоматического добавления завершающей строки с указанным
<key-alias>, а затем будет вызываться каждый раз, когда для изменения<value>завершающей строки, создаваемой этим параметром, указывается аргумент--trailer<key-alias>=<value>.При первом вызове указанной команды для добавления завершающей строки с заданным
<key-alias>поведение будет таким, как если бы в начало git-interpret-trailers[1] был добавлен специальный аргумент--trailer<key-alias>=<value>, где<value>— это стандартный вывод команды без начальных и конечных пробелов.Если в командной строке также переданы аргументы
--trailer<key-alias>=<value>, команда вызывается повторно для каждого из этих аргументов с тем же<key-alias>. При этом часть<value>этих аргументов, если она есть, передаётся команде в качестве первого аргумента. Таким образом, команда может сформировать<value>, вычисленный на основе<value>, переданного в аргументе--trailer<key-alias>=<value>. - transfer.credentialsInUrl
-
Настроенный URL может содержать учётные данные в открытом виде, например <protocol>
://<user>:<password>@<domain>/<path>. Возможно, вы захотите предупреждать о такой конфигурации или запрещать её (в пользу использования git-credential[1]). Эта настройка используется в git-clone[1], git-fetch[1], git-push[1] и при любом другом непосредственном использовании настроенного URL.Обратите внимание: в настоящее время проверяется наличие учётных данных только в конфигурации
remote.<name>.url; учётные данные в конфигурацииremote.<name>.pushurlне обнаруживаются.Чтобы предотвратить случайную утечку учётных данных, эту настройку может быть полезно включить, например, по следующим причинам:
-
ОС или система, в которой вы запускаете git, может не предоставлять возможности настраивать права доступа к файлу конфигурации, где хранятся имя пользователя и/или пароль, либо не разрешать это делать.
-
Даже если такая возможность есть, хранение этих данных «в покое» может создать другие риски: например, процесс резервного копирования может скопировать данные в другую систему.
-
Программы git передают полный URL друг другу в качестве аргументов командной строки. Это означает, что учётные данные будут доступны другим непривилегированным пользователям в системах, где можно просматривать полный список процессов других пользователей. В Linux это поведение можно настроить с помощью параметра «hidepid», описанного в procfs(5).
Если эти опасения вас не касаются, вероятно, вам не нужно беспокоиться об утечке учётных данных из-за хранения конфиденциальных данных в файлах конфигурации git. Если вы хотите использовать эту настройку, установите для
transfer.credentialsInUrlодно из следующих значений: -
allow(по умолчанию): Git продолжит работу без предупреждений. -
warn: Git выведет предупреждение вstderrпри разборе URL с учётными данными в открытом виде. -
die: Git выведет сообщение об ошибке вstderrпри разборе URL с учётными данными в открытом виде.
-
- transfer.fsckObjects
-
Если значения
fetch.fsckObjectsилиreceive.fsckObjectsне заданы, вместо них используется значение этой переменной. По умолчанию — false.Если параметр включён, операции fetch или receive прерываются при обнаружении некорректного объекта или ссылки на несуществующий объект. Кроме того, выполняются проверки на различные другие проблемы, включая устаревшие ошибки (см.
fsck.<msg-id>) и потенциальные проблемы безопасности, например наличие каталога.GITили вредоносного файла.gitmodules(подробности см. в примечаниях к выпускам v2.2.1 и v2.17.1). В будущих выпусках могут добавляться другие проверки корректности и безопасности.На стороне приёма сбой fsckObjects сделает эти объекты недостижимыми; см. раздел «QUARANTINE ENVIRONMENT» в git-receive-pack[1]. На стороне fetch некорректные объекты вместо этого останутся в репозитории без ссылок.
Из-за отсутствия карантинной среды в реализации
fetch.fsckObjectsнельзя рассчитывать на то, что хранилище объектов останется чистым, как это может обеспечитьreceive.fsckObjects.Распакованные объекты записываются в хранилище объектов, поэтому вредоносные объекты могут попасть в него, даже если операция «fetch» завершилась с ошибкой. Последующая операция «fetch» может завершиться успешно, поскольку проверяются только новые входящие объекты, а не те, которые уже записаны в хранилище объектов. Не следует полагаться на это различие в поведении. В будущем для операции «fetch» также может использоваться карантин таких объектов.
Пока что пользователям, предпочитающим проявлять повышенную осторожность, придётся найти способ имитировать карантинную среду, если они хотят получить такую же защиту, как при «push». Например, для внутреннего зеркала можно выполнять зеркалирование в два этапа: сначала получать недоверенные объекты, а затем выполнять вторую операцию «push» (которая использует карантин) в другой внутренний репозиторий, после чего внутренние клиенты смогут получать данные из этого репозитория. Другой вариант — приостановить внутренние операции fetch и разрешить их только после полной проверки «fsck» (при условии, что за это время не выполнялись новые операции fetch).
- transfer.hideRefs
-
Строки
receive-packиupload-packиспользуются, чтобы определить ссылки, которые нужно исключить из первоначальных объявлений. Чтобы указать несколько строк-префиксов, используйте несколько определений. Ссылка, входящая в перечисленные в значении этой переменной иерархии, исключается и скрывается при ответе наgitpushилиgitfetch. Версии этой настройки для отдельных программ см. в разделахreceive.hideRefsиuploadpack.hideRefs.Перед именем ссылки также можно указать
!, чтобы отменить правило и явно показать ссылку, даже если в предыдущей записи она была скрыта. Если задано несколько значений hideRefs, более поздние записи переопределяют более ранние (а записи в файлах конфигурации с более высоким приоритетом переопределяют записи в файлах с более низким приоритетом).Если используется пространство имён, его префикс удаляется из каждой ссылки перед сопоставлением с шаблонами
transfer.hiderefs. Чтобы сопоставлять ссылки до удаления префикса, добавьте^перед именем ссылки. Если вы комбинируете!и^, сначала необходимо указать!.Например, если
refs/heads/masterзадано вtransfer.hideRefs, а текущее пространство имён —foo, тоrefs/namespaces/foo/refs/heads/masterисключается из объявлений. Если заданоuploadpack.allowRefInWant,upload-packбудет обрабатыватьwant-refrefs/heads/masterв командеfetchпротокола v2 так, как если быrefs/namespaces/foo/refs/heads/masterне существовало. С другой стороны,receive-packвсё равно объявит идентификатор объекта, на который указывает ссылка, но не укажет её имя (так называемая строка «.have»).Даже если скрыть ссылки, клиент всё ещё может получить целевые объекты с помощью методов, описанных в разделе «SECURITY» справочной страницы gitnamespaces[7]; лучше хранить закрытые данные в отдельном репозитории.
- transfer.unpackLimit
-
Если значения
fetch.unpackLimitилиreceive.unpackLimitне заданы, вместо них используется значение этой переменной. Значение по умолчанию — 100. - transfer.advertiseSID
-
Логическое значение. Если значение равно true, клиентские и серверные процессы сообщают удалённой стороне свои уникальные идентификаторы сеанса. По умолчанию — false.
- transfer.bundleURI
-
Если задано значение
true, локальные командыgitcloneзапрашивают у удалённого сервера сведения о бандлах (если они объявлены) и загружают бандлы, прежде чем продолжить клонирование по протоколу Git. По умолчанию —false. - transfer.advertiseObjectInfo
-
Если задано значение
true, серверы объявляют возможностьobject-info. По умолчанию — false. - uploadarchive.allowUnreachable
-
Если значение равно true, разрешить клиентам использовать
gitarchive--remoteдля запроса любого дерева, независимо от того, достижимо ли оно от вершин ссылок. Подробнее см. обсуждение в разделе «SECURITY» страницы git-upload-archive[1]. По умолчанию —false. - uploadpack.hideRefs
-
Эта переменная совпадает с
transfer.hideRefs, но применяется только кupload-pack(и поэтому влияет только на операции fetch, но не push). Попытка получить скрытую ссылку с помощьюgitfetchзавершится ошибкой. См. такжеuploadpack.allowTipSHA1InWant. - uploadpack.allowTipSHA1InWant
-
Если действует
uploadpack.hideRefs, разрешитьupload-packпринимать запрос fetch объекта, находящегося на вершине скрытой ссылки (по умолчанию такой запрос отклоняется). См. такжеuploadpack.hideRefs. Даже если значение равно false, клиент всё ещё может получить объекты с помощью методов, описанных в разделе «SECURITY» справочной страницы gitnamespaces[7]; лучше хранить закрытые данные в отдельном репозитории. - uploadpack.allowReachableSHA1InWant
-
Разрешить
upload-packпринимать запрос fetch объекта, достижимого от вершины любой ссылки. Однако вычисление достижимости объектов требует значительных вычислительных ресурсов. По умолчанию —false. Даже если значение равно false, клиент всё ещё может получить объекты с помощью методов, описанных в разделе «SECURITY» справочной страницы gitnamespaces[7]; лучше хранить закрытые данные в отдельном репозитории. - uploadpack.allowAnySHA1InWant
-
Разрешить
upload-packпринимать запрос fetch любого объекта. Этот параметр подразумеваетuploadpack.allowTipSHA1InWantиuploadpack.allowReachableSHA1InWant. Если задано значениеtrue, будут включены оба параметра; если задано значениеfalse, оба параметра будут отключены. По умолчанию не задан. - uploadpack.keepAlive
-
После того как
upload-packначалpack-objects, может наступить пауза, покаpack-objectsготовит пакет. Обычно он выводит информацию о ходе выполнения, но если для fetch использовался параметр--quiet,pack-objectsне будет ничего выводить до начала передачи данных пакета. Некоторые клиенты и сети могут решить, что сервер завис, и прекратить ожидание. Если установить этот параметр,upload-packбудет отправлять пустой пакет keepalive каждыеuploadpack.keepAliveсекунд. Если установить значение 0, пакеты keepalive будут полностью отключены. Значение по умолчанию — 5 секунд. - uploadpack.packObjectsHook
-
Если этот параметр задан, команда
upload-packвместо запускаgitpack-objectsдля создания packfile для клиента выполнит эту команду оболочки. Командаpack-objectsи аргументы, которые онаwouldпередать (включаяgitpack-objectsв начале), добавляются к команде оболочки. Потоки stdin и stdout обработчика рассматриваются так, как если бы сама командаpack-objectsбыла запущена. То естьupload-packпередаст обработчику входные данные, предназначенные дляpack-objects, и ожидает получить готовый packfile в stdout.Обратите внимание, что эта переменная конфигурации учитывается только в том случае, если она указана в защищённой конфигурации (см. ОБЛАСТИ ДЕЙСТВИЯ). Это мера безопасности, предотвращающая получение данных из ненадёжных репозиториев.
- uploadpack.allowFilter
-
Если этот параметр задан,
upload-packбудет поддерживать частичное клонирование и фильтрацию объектов при частичном получении данных. - uploadpackfilter.allow
-
Задаёт значение по умолчанию для неуказанных фильтров объектов (см. следующую переменную конфигурации). Если задано значение
true, это также включит все фильтры, добавленные в будущем. По умолчанию —true. - uploadpackfilter.<filter>.allow
-
Явно разрешает или запрещает фильтр объектов, соответствующий <filter>, где <filter> может принимать одно из значений:
blob:none,blob:limit,object:type,tree,sparse:oidилиcombine. При использовании составных фильтров должны быть разрешены какcombine, так и все вложенные типы фильтров. По умолчанию —uploadpackfilter.allow. - uploadpackfilter.tree.maxDepth
-
Разрешает
--filter=tree:<n>, только если значение <n> не превышает значениеuploadpackfilter.tree.maxDepth. Если этот параметр задан, он также подразумеваетuploadpackfilter.tree.allow=true, если эта переменная конфигурации ещё не была задана. Не действует, если параметр не задан. - uploadpack.allowRefInWant
-
Если этот параметр задан,
upload-packбудет поддерживать функциюref-in-wantкомандыfetchпротокола версии 2. Эта функция предназначена для балансируемых серверов, которые из-за задержки репликации могут по-разному представлять себе, на какие OID указывают их ссылки. - url.<base>.insteadOf
-
Любой URL, начинающийся с этого значения, будет переписан так, чтобы вместо него начинаться с <base>. Если на каком-либо сайте размещено много репозиториев, доступных несколькими способами, а некоторым пользователям требуются другие способы доступа, эта функция позволяет указывать любой из эквивалентных URL, а Git автоматически переписывает URL на наиболее подходящий для конкретного пользователя вариант, даже если репозиторий на этом сайте ещё ни разу не встречался. Если URL соответствует нескольким строкам insteadOf, используется самое длинное совпадение.
Обратите внимание, что все ограничения протоколов применяются к переписанному URL. Если при переписывании URL меняется на адрес с пользовательским протоколом или удалённым помощником, может потребоваться изменить параметр конфигурации
protocol.*.allow, чтобы разрешить этот запрос. В частности, для протоколов, которые предполагается использовать для подмодулей, следует задать значениеalways, а не значение по умолчаниюuser. См. приведённое выше описаниеprotocol.allow. - url.<base>.pushInsteadOf
-
В любой URL, начинающийся с этого значения, отправка данных выполняться не будет: вместо этого URL будет переписан так, чтобы начинаться с <base>, и отправка будет выполнена по полученному URL. Если на каком-либо сайте размещено много репозиториев, доступных несколькими способами, некоторые из которых не поддерживают отправку данных, эта функция позволяет указывать URL только для получения данных, а Git автоматически использует подходящий URL для отправки, даже если репозиторий на этом сайте ещё ни разу не встречался. Если URL соответствует нескольким строкам pushInsteadOf, используется самое длинное совпадение. Если для удалённого репозитория явно задан pushurl, Git не будет учитывать этот параметр для данного удалённого репозитория.
- user.name
- user.email
- author.name
- author.email
- committer.name
- committer.email
-
Переменные
user.nameиuser.emailопределяют содержимое полейauthorиcommitterобъектов коммитов. Если значенияauthorилиcommitterдолжны отличаться, можно задать переменныеauthor.name,author.email,committer.nameилиcommitter.email. Все эти значения можно переопределить переменными окруженияGIT_AUTHOR_NAME,GIT_AUTHOR_EMAIL,GIT_COMMITTER_NAME,GIT_COMMITTER_EMAILиEMAIL.Обратите внимание, что формы этих переменных с
nameтрадиционно обозначают какую-либо форму личного имени. Дополнительные сведения об этих параметрах см. в git-commit[1] и разделе о переменных окружения в git[1]. Если же вам нужны учётные данные для аутентификации, см. параметрcredential.username. - user.useConfigOnly
-
Указывает Git не пытаться подбирать значения по умолчанию для
user.emailиuser.name, а получать их только из конфигурации. Например, если у вас несколько адресов электронной почты и для каждого репозитория нужно использовать свой адрес, при установке этого параметра в значениеtrueв глобальной конфигурации вместе с именем Git предложит указать адрес электронной почты перед созданием первых коммитов в новом клонированном репозитории. По умолчанию —false. - user.signingKey
-
Если при создании подписанного тега или коммита команды git-tag[1] или git-commit[1] автоматически выбирают не тот ключ, который вам нужен, с помощью этой переменной можно переопределить выбор по умолчанию. Этот параметр без изменений передаётся аргументу --local-user команды gpg, поэтому ключ можно указать любым способом, поддерживаемым gpg. Если для gpg.format задано значение
ssh, здесь можно указать путь к закрытому ключу SSH или к открытому ключу, если используется ssh-agent. Также можно указать открытый ключ с префиксомkey::непосредственно (например: "key::ssh-rsa XXXXXX identifier"). Закрытый ключ должен быть доступен через ssh-agent. Если параметр не задан, Git вызовет gpg.ssh.defaultKeyCommand (например, "ssh-add -L") и попытается использовать первый доступный ключ. Для обратной совместимости необработанный ключ, начинающийся с "ssh-", например "ssh-rsa XXXXXX identifier", рассматривается как "key::ssh-rsa XXXXXX identifier", однако эта форма устарела; вместо неё используйте формуkey::. - versionsort.prereleaseSuffix (устарел)
-
Устаревший псевдоним для
versionsort.suffix. Игнорируется, если заданversionsort.suffix. - versionsort.suffix
-
Даже при использовании сортировки версий в git-tag[1] имена тегов с одинаковой базовой версией, но разными суффиксами, по-прежнему сортируются лексикографически. В результате, например, теги предварительного выпуска располагаются после основного выпуска (например, "1.0-rc1" после "1.0"). С помощью этой переменной можно задать порядок сортировки тегов с разными суффиксами.
Если указать в этой переменной один суффикс, любой тег, содержащий этот суффикс, будет отображаться перед соответствующим основным выпуском. Например, если переменной задано значение "-rc", все теги "1.0-rcX" будут отображаться перед "1.0". Если указать несколько суффиксов, по одному за раз, порядок суффиксов в конфигурации будет определять порядок сортировки имён тегов с этими суффиксами. Например, если "-pre" в конфигурации указан перед "-rc", все теги "1.0-preX" будут перечислены перед тегами "1.0-rcX". Расположение тега основного выпуска относительно тегов с различными суффиксами можно задать, указав среди этих суффиксов пустой суффикс. Например, если суффиксы "-rc", "", "-ck" и "-bfs" указаны в конфигурации именно в таком порядке, сначала будут перечислены все теги "v4.8-rcX", затем "v4.8", потом "v4.8-ckX" и, наконец, "v4.8-bfsX".
Если одному имени тега соответствуют несколько суффиксов, оно будет отсортировано по суффиксу, который начинается в имени тега раньше остальных. Если несколько разных совпадающих суффиксов начинаются в этой самой ранней позиции, имя тега будет отсортировано по самому длинному из этих суффиксов. Порядок сортировки между разными суффиксами не определён, если они указаны в нескольких файлах конфигурации.
- web.browser
-
Указывает веб-браузер, который могут использовать некоторые команды. В настоящее время его могут использовать только git-instaweb[1] и git-help[1].
-
worktree.guessRemote -
Если ветка не указана и не используются
-b,-Bили--detach, командаgitworktreeaddпо умолчанию создаёт новую ветку от HEAD. Если дляworktree.guessRemoteзадано значение true, командаworktreeaddпытается найти ветку отслеживания удалённого репозитория, имя которой однозначно соответствует имени новой ветки. Если такая ветка существует, она переключается, и для новой ветки устанавливается как "вышестоящая". Если соответствие найти не удаётся, создаётся новая ветка от текущегоHEAD. -
worktree.useRelativePaths -
Связывает рабочие деревья относительными путями (если задано значение "
true") или абсолютными путями (если задано значение "false"). Это особенно полезно в конфигурациях, где репозиторий и рабочие деревья могут перемещаться между разными расположениями или средами. По умолчанию — "false".Обратите внимание, что установка для
worktree.useRelativePathsзначения "true" подразумевает включение параметра конфигурацииextensions.relativeWorktrees(см. git-config[1]), что делает эту настройку несовместимой со старыми версиями Git.
Ошибки
При использовании устаревшего синтаксиса [section.subsection] изменение значения приводит к добавлению многострочного ключа вместо изменения существующего, если в имени подраздела есть хотя бы одна заглавная буква. Например, если конфигурация выглядит так:
[section.subsection]
key = value1 то выполнение git config section.Subsection.key value2 приведёт к следующему результату:
[section.subsection]
key = value1
key = value2 config
© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/git-config