http.proxy
在使用命令行参数直接调用 Git 命令时,我想覆盖某些 Git 配置选项(在我的情况下)。这可能吗?
4 回答
是的,您可以使用 传递它-c
,例如:
git -c http.proxy=someproxy clone https://github.com/user/repo.git
git -c
请注意,有一个关于覆盖(使用命令)配置的新功能:
您不能将配置设置为空字符串(git -c http.proxy=
或任何其他字符串foo.bar=
),直到git 2.1.2(2014 年 9 月 30 日),并提交 a789ca7 Junio C Hamano ( gitster
)
配置:教“ git -c
”识别空字符串
在配置文件中,您可以执行以下操作:
[foo]
bar
打开“
foo.bar
”布尔标志,你可以这样做:
[foo]
bar=
将“
foo.bar
”设置为空字符串。
但是,git 的 "-c
" 参数同时处理:
git -c foo.bar
和
git -c foo.bar=
作为布尔标志,并且无法将变量设置为空字符串。
此补丁使后一种形式能够做到这一点。
如 Git 2.23(2019 年第三季度)中所述,但在此之前已经可用,您可以覆盖 Git 配置选项的另一个地方是... git aliases!
请参阅Denton Liu ( ) 的提交 459842e和提交 01991ce(2019 年 6 月 5 日)。(由Junio C Hamano 合并 -- --在提交 71221f2中,2019 年 7 月 9 日)Denton-L
gitster
config/alias.txt
:接受非命令第一个单词的文档别名可以看到,允许以非命令第一个单词开头的别名,例如
loud-rebase = -c commit.verbose=true rebase
,。
但是,这对用户来说并不是很明显,因为别名实例通常以命令开头。记录别名可以以非命令第一个单词开头的事实,以便用户能够发现这是一项功能。
该文档现在包括:
请注意,别名的第一个单词不一定是命令。它可以是一个命令行选项,将传递给
git
.
-c
特别是,当与传递一次性配置或-p
强制分页一起使用时,这很有用。例如,
loud-rebase = -c commit.verbose=true rebase
可以定义为 runninggit loud-rebase
相当于git -c commit.verbose=true rebase
.此外,
ps = -p status
这将是一个有用的别名,因为它将对原始命令没有git ps
的输出进行分页。git status
例如,我定义:
vonc@vonvb:~/gits/src/git$ git config alias.loud-commit "-c commit.verbose=true commit"
vonc@vonvb:~/gits/src/git$ git loud-commit -a
这给了我:
diff (红色部分)不会出现在带有简单git commit -a
.
别名不需要以!git
调用 shell 命令开头git
。
它可以直接以git
命令选项开头,例如-c
.
是的,这是可能的。一开始git是如何存储他的配置的?我在本地有工作回购
cat ./projects/autoopt.ru/.git/config
所以 git 将设置存储在文件中。你可以直接编辑这个文件,但是 git 提供了 CLI 来简化编辑配置参数。
那么什么是指挥?可能是 git config set= 嗯...我需要参数名称 url?设置 url= 不起作用?
那么如何找出 git config 命令的格式呢?
- 在我的情况下打开谷歌,yandex
- “git 配置规范”
- 官方 git 文档
- git config name [value [value-pattern]] (这意味着您需要传递属性名称和空格分隔的值
现在,当我需要通过给定的配置文件内容更改远程 repos url 时,我需要找出如何编写参数的名称。
[remote "origin"]
url=...
远程类、实例来源、类成员 url 与值。
所以答案是
git config remote.origin.url <value>