Я хочу переопределить определенные параметры конфигурации 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.
