Git: netrc -d -v $@ get: netrc: command not found

时间:2021-03-09 09:44:57

标签: windows git .netrc

我在 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 的替代品,并且不依赖于它的存在。这在较新的版本中是否有所改变?

enter image description here

1 个答案:

答案 0 :(得分:0)

我只想将其作为 Git - How to use .netrc file on Windows to save user and passwordGit .netrc file authentication issue 的副本关闭,但是您询问这些消息表示是什么,而不仅仅是如何解决问题,而您也可能已经配置了 credential.helper。所以:当 Git 需要一个凭证——例如用户名或密码时——Git 从不1 只是试图自己编造一个,或者自己提供它。相反,Git 会参考您的配置和/或然后运行凭证助手

凭证助手是您喜欢的任意程序,但有几个问题:

  • Git 使用一个参数运行程序:字面词 getstoreerasethe gitcredentials documentation 中描述了此过程。

  • 您可以将 Git 配置为运行您喜欢的任何程序,但是无论您在配置中设置什么——例如,P——Git 都将运行 git-credential-P。< /p>

这些程序可以是已经存在并由您的操作系统提供的程序,也可以是您从您喜欢的任何地方获得并安装在您喜欢的任何地方的程序。例如,Git 安装的“贡献软件”部分包括一个名为 git-credential-netrc 的程序。

奇怪的是,您的 输出显示 netrc -d -v get 等,而不是 git-credential-netrc -d -v get。如果您配置了 credential.helpernetrc -d -v 设置,您应该看到 git-credential-netrc 作为未找到命令。所以我假设您已经配置了一些other 程序,确实 存在,它本身正在尝试运行netrc。您可能需要找到这个程序并弄清楚它为什么运行 netrc,它是否应该运行 netrc 等等。通常,.netrc 文件要么是一个普通的-text 文件或加密文件,我们不运行任何命令来读取它——我们只是打开它并读取它的数据。我们可能会运行一个命令来解密它的数据,这就是用 Perl 编写的 git-credential-netrc 助手的大部分内容,但是解密命令没有拼写为 netrc


1插入 Gilbert and Sullivan H.M.S. Pinafore routine here

相关问题