Подтвердить что ты не робот

Как переопределить параметры конфигурации Git параметрами командной строки?

Я хочу переопределить определенные параметры конфигурации Git (в моем случае http.proxy) при непосредственном вызове команды Git с использованием параметров командной строки. Это возможно?

4b9b3361

Ответ 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

Это дает мне:

git loud commit

Diff (красная часть) не будет присутствовать в редакторе сообщений с простым git commit -a.

Псевдоним не должен начинаться с !git для вызова команды оболочки git.
Он может напрямую запускаться с опцией команды git, например -c.