Я хочу переопределить определенные параметры конфигурации Git (в моем случае http.proxy
) при непосредственном вызове команды Git с использованием параметров командной строки. Это возможно?
Как переопределить параметры конфигурации Git параметрами командной строки?
Ответ 1
Да, вы можете передать его с помощью -c
, например:
git -c http.proxy=someproxy clone https://github.com/user/repo.git
Ответ 2
Обратите внимание, что есть новая функция относительно возможности переопределить (с помощью команды git -c
) конфигурацию:
Вы не можете установить конфигурацию в пустую строку (git -c http.proxy=
или любой другой foo.bar=
), то есть до git 2.1.2 (30 сентября 2014 г.) и зафиксировать a789ca7 Junio C Хамано (gitster
)
config: научить "git -c
" распознавать пустую строку
В файле конфигурации вы можете:
[foo]
bar
чтобы включить флаг "
foo.bar
" boolean, и вы можете сделать:
[foo]
bar=
чтобы установить "
foo.bar
" в пустую строку.
Однако параметр git "-c
" обрабатывает оба:
git -c foo.bar
и
git -c foo.bar=
как логический флаг, и нет способа установить переменную в пустую строку.
Этот патч позволяет последней форме сделать это.
Ответ 3
Как описано в Git 2.23 (Q3 2019), но уже доступно до этого, еще одно место, где вы можете переопределить опцию конфигурации Git - это... git aliases !
См. Коммит 459842e, коммит 01991ce (05 июня 2019 г.) Дентона Лю (Denton-L
).
(Объединено Junio C Hamano - gitster
- в коммите 71221f2, 09 июля 2019 г.)
config/alias.txt
: псевдоним документа, принимающий не -c ommand первое словоМожно видеть, что псевдоним, начинающийся с первого слова, отличного от -c ommand, такого как
loud-rebase = -c commit.verbose=true rebase
, разрешен.
Однако, это не сразу очевидно для пользователей, так как экземпляры псевдонимов обычно начинаются с команды.Документируйте тот факт, что псевдоним может начинаться с первого слова, не являющегося -c ommand, чтобы пользователи могли обнаружить, что это особенность.
Документация теперь включает в себя:
Обратите внимание, что первое слово псевдонима не обязательно должно быть командой. Это может быть параметр командной строки, который будет передан в вызов
git
.В частности, это полезно при использовании с
-c
для передачи в одноразовых конфигурациях или-p
для форсирования нумерации страниц.Например,
loud-rebase = -c commit.verbose=true rebase
можно определить так, чтобы запускgit loud-rebase
был бы эквивалентенgit -c commit.verbose=true rebase
.Кроме того,
ps = -p status
будет полезным псевдонимом, так какgit ps
будет разбивать на страницы вывод состоянияgit status
где исходная команда этого не делает.
Например, я определил:
[email protected]:~/gits/src/git$ git config alias.loud-commit "-c commit.verbose=true commit"
[email protected]:~/gits/src/git$ git loud-commit -a
Это дает мне:
Diff (красная часть) не будет присутствовать в редакторе сообщений с простым git commit -a
.
Псевдоним не должен начинаться с !git
для вызова команды оболочки git
.
Он может напрямую запускаться с опцией команды git
, например -c
.