windows - Git LFS 不考虑 credential.helper 的配置文件级别

标签 windows git git-lfs git-credential-manager

运行 Git LFS 命令,例如

GIT_TRACE=1 git lfs locks
显示系统 credential.helper 被使用,即使它被本地配置覆盖。
运行
git config --system -l
列出“credential.helper=manager”
然而
git config --local -l
只有列出“credential.helper=other”
在启用跟踪器的情况下运行 Git LFS locks 命令显示这一行
run-command.c:663       trace: run_command: 'git credential-manager get'
删除系统范围的管理器
git config --system --unset credential.helper
解决了这个问题,我的本地助手“其他”被正确使用。
根据git configuration documentation ,每个级别都胜过前一个级别,因此 Git LFS 不遵守 git 标准。有没有什么聪明的方法可以在不取消系统范围的帮助程序以及可能破坏其他存储库的身份验证的情况下完成这项工作?

最佳答案

实际上,Git LFS 在这里做的是正确的事情。它使用 Git 的 git credential命令,因此完全继承了 Git 本身的行为。
虽然您是正确的,当 Git 选项采用单个值时,更具体的配置文件会覆盖更通用的文件,在 credential.helper 的情况下,可以指定多个值。如果您有一组站点(例如,一组域中的站点)的自定义凭证助手,然后是其他站点的常规助手,这会很有帮助。在这种情况下,所有凭证助手都将被要求提供凭证,直到找到提供所需凭证的凭证。
如果您只想为一个存储库覆盖它,您可以在 .git/config 中编写类似的内容首先清除现有列表(带有空条目),然后添加一个新的凭证助手:

[credential]
    helper =
    helper = other
git config 正确设置这是非常棘手的,所以我建议手动编辑文件。

关于windows - Git LFS 不考虑 credential.helper 的配置文件级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64822717/

相关文章:

c++ - 将 ListView 控件滚动到特定项目

windows - Windows 批处理 `for` 循环中没有换行符的回显

Git::将多模块项目拆分为 2 个模块并保留历史记录

git - 尝试使用 git LFS 同步 zip 文件,提示我空间不足

c++ - 在 winapi CALLBACK 函数上返回 FALSE 时出现意外行为(跳过循环?)

git - 是否可以将多个本地文件夹连接到 Github 中的一个存储库?

Git:如何找到提交之间的最短路径

linux - 删除不在 repo 中的 git LFS 文件

GIT LFS 卡在 filter-process 命令中

Qt 5.3 Webkit QWebView 中的 Javascript 速度太慢,并且在 Windows 上挂起 MainWindow