"git config" 命令中的参数“--add”是什么意思?
What does the argument "--add" mean in the "git config" command?
我偶然发现了一个 git 命令:
git config --global --add merge.ff false
大概是在合并分支的时候默认关闭了快进。但是 --add
选项引起了我的注意,所以我现在想知道它到底做了什么。有人吗?
与 documented in the manual page 一样,--add
标志告诉 git config
不要覆盖任何现有的 merge.ff
设置,而是在任何现有设置之外添加一个新设置.
由于 merge.ff
不是多值可配置项,这通常是错误的做法。 (实际上,由于 Git 扫描配置文件的方式,新添加的设置会覆盖之前的任何设置,而 --add
会在最后添加,所以它仍然有效。)对于单值配置项就像 merge.ff
在任何给定的配置文件中真的应该只有一个条目。
(把它想象成,例如,告诉 Git 不要做某事,然后告诉它做某事,然后告诉它不要做那件事。Git 简单地服从在本例中,它听到的是 last 命令。)
多值配置项的一个示例是每个遥控器的 fetch
行。例如,remote.origin.fetch
通常只是 +refs/heads/*:refs/remotes/origin/*
,但您可以 添加 +refs/notes/*:refs/notes/*
或 +refs/notes/*:refs/notes/origin/*
以从 origin
复制注释], 例如。 (您肯定不想删除第一个设置,只是为了添加第二个设置。)
(这不是 bash 特定的东西,而是 Git 特定的东西。Bash 只是运行带有指定参数的命令,并保留对这些参数的解释命令的参数。)
--add
Adds a new line to the option without altering any existing values. This is the same as providing ^$ as the value_regex in --replace-all.
我偶然发现了一个 git 命令:
git config --global --add merge.ff false
大概是在合并分支的时候默认关闭了快进。但是 --add
选项引起了我的注意,所以我现在想知道它到底做了什么。有人吗?
与 documented in the manual page 一样,--add
标志告诉 git config
不要覆盖任何现有的 merge.ff
设置,而是在任何现有设置之外添加一个新设置.
由于 merge.ff
不是多值可配置项,这通常是错误的做法。 (实际上,由于 Git 扫描配置文件的方式,新添加的设置会覆盖之前的任何设置,而 --add
会在最后添加,所以它仍然有效。)对于单值配置项就像 merge.ff
在任何给定的配置文件中真的应该只有一个条目。
(把它想象成,例如,告诉 Git 不要做某事,然后告诉它做某事,然后告诉它不要做那件事。Git 简单地服从在本例中,它听到的是 last 命令。)
多值配置项的一个示例是每个遥控器的 fetch
行。例如,remote.origin.fetch
通常只是 +refs/heads/*:refs/remotes/origin/*
,但您可以 添加 +refs/notes/*:refs/notes/*
或 +refs/notes/*:refs/notes/origin/*
以从 origin
复制注释], 例如。 (您肯定不想删除第一个设置,只是为了添加第二个设置。)
(这不是 bash 特定的东西,而是 Git 特定的东西。Bash 只是运行带有指定参数的命令,并保留对这些参数的解释命令的参数。)
--add
Adds a new line to the option without altering any existing values. This is the same as providing ^$ as the value_regex in --replace-all.