win git2.50 版本,发现 repo 和 user 级别的配置优先级居然低于 system 级别配置

6 天前
 a33291
卸载重装也一样

比如在 C:\Program Files\Git\etc\gitconfig 里设置 credential.helper=manager
然后在仓库或用户级别设置 credential.helper=store
git pull 还是会弹出 manager 的认证 UI 界面

目前是移除了 system 级别的配置文件才解决这个问题

难道我理解错配置优先级了?
506 次点击
所在节点    问与答
6 条回复
villivateur
6 天前
你再配一下其他的参数试试呢,比如 username 和 email
a33291
6 天前
@villivateur 感谢建议,username 的话优先级配置是有效的,只有这个 credential.helper 无效

也许这个 credential.helper 是额外的配置策略,但是大部分网上资料都是通过直接配置这个来修改参数

现在的话,我测试还是必须修改 system 级别才有效
h404bi
5 天前
git credential.helper 的策略是 system->global->local 合并*逐级*测试的,而非你想的*覆盖*。也就是先尝试 system 里设置的 credential.helper ,如果可用就跳过后续 global/local 里的设置。具体可查阅下 git-scm doc 关于 helper 的部分
a33291
5 天前
@h404bi 感谢回复
这比较反直觉,其他配置都遵循 local->global->system 这种优先级策略
我在文档里找了以下,没有搜到描述其配置读取优先级的说明

而且网上找到的各种关于认证的资料,基本都是让改 global 配置,比如 https://stackoverflow.com/questions/13198143/how-do-i-disable-gits-credential-helper-for-a-single-repository

目前没有明确的资料说这个配置优先级是反向的,我还是倾向于认为是我这边环境问题,我得找个干净的机器再试试
h404bi
5 天前
@a33291
找到了几年前我在 GitHub 上的回复 https://github.com/ScoopInstaller/Main/issues/2894#issuecomment-1125150531 虽然是针对 Scoop 但是情景是一样的。git-scm doc 里那句话 ..tried in turn 很容易错过。这确实挺反直觉,主要是其它设置项都使用覆盖策略。
a33291
5 天前
@h404bi #5 清晰明了,感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1142132

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX