意思是,拥有类似于每个存储库部分的内容[repo_url]来覆盖全局(不适用于特定存储库)选项。
[core]
filemode = false
editor = notepad
[repo "example.com/repo1.git"]
[core]
filemode = true
# editor = notepad
[repo "example.com/repo2.git"]
[core]
editor = vim
# filemode = false
Run Code Online (Sandbox Code Playgroud)
在git中可以吗?
注意:我正在制作很多git clone存储库的克隆(),我将在这样的全局配置中指定它们
使用 Git 2.36(2022 年第 2 季度),除了依赖本地文件夹之外,您还将有另一种选择:使用“”的配置文件的条件包含机制[includeIf <condition>]会学习根据与存储库交互的远程存储库的URL来做出决定。
请参阅Jonathan Tan提交的提交 399b198和提交 ed69e11(2022 年 1 月 18 日)。(由Junio C Hamano 合并 -- --提交13ce8f9,2022年 2 月 9 日)jhowtan
gitster
config:如果远程 URL 与 glob 匹配,则包含文件签署人: Jonathan Tan
签署人: Elijah Newren
此功能支持配置文件包含,条件是存储库是否具有 URL 与 glob 匹配的远程版本。
与我之前关于远程建议挂钩的工作类似,主要动机是允许远程存储库管理员以更容易使用的方式提供推荐的配置(例如,通过包管理器可安装的包 - 例如,它可以,包含一个有条件包含的文件和一个将 include 指令添加到系统范围配置文件中的安装后脚本)。
为了做到这一点,Git 在注意到第一个 URL 条件包含后重新运行配置解析机制,以便找到所有远程 URL,然后使用这些远程 URL 来确定是否执行第一个和所有后续包含。
不允许在任何 URL 条件包含文件中配置远程 URL。
config现在包含在其手册页中:
hasconfig:remote.*.url:该关键字后面的数据被视为具有标准通配符和两个附加通配符的模式,
**/和/**,可以匹配多个组件。
第一次看到此关键字时,将扫描其余配置文件以查找远程 URL(不应用任何值)。
如果存在至少一个与此模式匹配的远程 URL,则满足包含条件。此选项(直接或间接)包含的文件不允许包含远程 URL。
请注意,与其他
includeIf条件不同,解决此条件依赖于读取条件时尚不知道的信息。典型的用例是此选项作为系统级或全局级配置出现,而远程 URL 位于本地级配置中;因此,在解决这种情况时需要提前扫描。
为了避免潜在包含的文件会影响此类文件是否被潜在包含的“先有鸡还是先有蛋”的问题,Git 通过禁止这些文件影响这些条件的解析(从而禁止它们声明远程 URL)来打破循环。 )。
至于这个关键字的命名,是为了向前兼容支持更多基于变量的包含条件的命名方案,但目前 Git 仅支持上述的确切关键字。
config现在包含在其手册页中:
Run Code Online (Sandbox Code Playgroud); include only if a remote with the given URL exists (note ; that such a URL may be provided later in a file or in a ; file read after this file is read, as seen in this example) [includeIf "hasconfig:remote.*.url:https://example.com/**"] path = foo.inc [remote "origin"] url = https://example.com/git