我在 Windows 上使用 _netrc(有一些原因我需要使用它),它设置正确,但几个月前,当我推送到 TFS 时,它仍然要求我输入密码,我看到以下 2 条警告消息:
netrc -d -v $@ get: netrc: command not found
netrc -d -v $@ store: netrc: command not found
这些消息意味着什么?它们是否与我的 _netrc
文件被忽略的原因有关?它们是否意味着我需要安装 netrc
命令?
编辑:另一件事是我需要禁用 Git Credential Manager(即我取消选中该复选框) - 同样,有理由这样做。在旧版本的 Git 中,_netrc
用作 Git Credential Manager 的替代品,并且不依赖于它的存在。这在较新的版本中是否有所改变?
答案 0 :(得分:0)
我只想将其作为 Git - How to use .netrc file on Windows to save user and password 和 Git .netrc file authentication issue 的副本关闭,但是您询问这些消息表示是什么,而不仅仅是如何解决问题,而您也可能已经配置了 credential.helper
。所以:当 Git 需要一个凭证——例如用户名或密码时——Git 从不1 只是试图自己编造一个,或者自己提供它。相反,Git 会参考您的配置和/或然后运行凭证助手。
凭证助手是您喜欢的任意程序,但有几个问题:
Git 使用一个参数运行程序:字面词 get
、store
或 erase
。 the gitcredentials documentation 中描述了此过程。
您可以将 Git 配置为运行您喜欢的任何程序,但是无论您在配置中设置什么——例如,P
——Git 都将运行 git-credential-P
。< /p>
这些程序可以是已经存在并由您的操作系统提供的程序,也可以是您从您喜欢的任何地方获得并安装在您喜欢的任何地方的程序。例如,Git 安装的“贡献软件”部分包括一个名为 git-credential-netrc
的程序。
奇怪的是,您的 输出显示 netrc -d -v get
等,而不是 git-credential-netrc -d -v get
。如果您配置了 credential.helper
的 netrc -d -v
设置,您应该看到 git-credential-netrc
作为未找到命令。所以我假设您已经配置了一些other 程序,确实 存在,它本身正在尝试运行netrc
。您可能需要找到这个程序并弄清楚它为什么运行 netrc
,它是否应该运行 netrc
等等。通常,.netrc
文件要么是一个普通的-text 文件或加密文件,我们不运行任何命令来读取它——我们只是打开它并读取它的数据。我们可能会运行一个命令来解密它的数据,这就是用 Perl 编写的 git-credential-netrc
助手的大部分内容,但是解密命令没有拼写为 netrc