参数“--add”在“git config”命令中的含义是什么?

时间:2016-06-30 11:06:23

标签: git bash terminal git-bash

我偶然发现了一个git命令:

git config --global --add merge.ff false

据推测,合并分支时默认禁用快进。但--add选项引起了我的注意,所以我现在想知道它究竟做了什么。任何人吗?

2 个答案:

答案 0 :(得分:2)

作为documented in the manual page--add标记告诉git config不要覆盖任何现有的merge.ff设置,而是添加除现有设置之外的新设置。< / p>

由于merge.ff不是多值可配置的,因此这通常是错误的。 (事实上​​,由于Git扫描配置文件的方式,新添加的设置会覆盖以前的任何设置,并且最后添加--add,因此无论如何它都可以工作。)对于{{1}这样的单值配置项在任何给定的配置文件中都应该只有一个条目。

(例如,将其视为告诉Git不要做某事,然后告诉它做某事,然后告诉它不做那件事.Git只是服从 last 命令在这种情况下,它听到了。)

多值配置项的示例是每个远程的merge.ff行。例如,fetch通常只是remote.origin.fetch,但您可以添加 +refs/heads/*:refs/remotes/origin/*+refs/notes/*:refs/notes/*来复制来自+refs/notes/*:refs/notes/origin/*的备注,实例。 (你肯定不想删除第一个设置,只是添加第二个设置。)

(这不是特定于bash的东西,而是特定于Git的东西.Bash只使用指定的参数运行命令,并将这些参数的解释留给命令。)

答案 1 :(得分:1)

来自git-config doc

  

--add

     

在不更改任何现有值的情况下向选项添加新行。这与在--replace-all中提供^ $作为value_regex相同。