型 Luke在评论中提到: 在Windows7上使用最新版本的msysgit,我不需要设置HOME环境变量,只需要_netrc文件就可以了。 这确实是我在“尝试“install“github,.ssh dir not there”中提到的: msysgit中包含的git-cmd.bat会设置%HOME%环境变量:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
型 爱国者在评论中认为,“看来它对http协议不起作用” 然而,我回答说netrc是由curl使用的,并且适用于HTTP协议,如this example所示(在页面中查找'netrc'):.这里也与HTTP协议一起使用:“_netrc / .netrc alternative to cURL“。 在Windows上使用netrc支持的一个常见陷阱是,如果源https url指定了用户名,git将绕过它。 例如,如果您的.git/config文件包含:
# and if you want lots of debugging info:
git config credential.helper '$shortname -f AUTHFILE -d'
#or to see the files opened and data found:
git config credential.helper '$shortname -f AUTHFILE -v'
5条答案
按热度按时间wrrgggsh1#
是否可以在Windows上使用
.netrc
文件?是:您必须:
%HOME%
(Git 2.0之前版本,Git 2.0以上版本不再需要)_netrc
文件放入%HOME%
如果您使用的是Windows 7/10,则在
CMD
会话中键入:字符串
并且
%HOME%
将被设置为“C:\Users\"username"
”。转到该文件夹(
cd %HOME%
)并创建一个名为“_netrc
”的文件注意:同样,对于Windows,您需要一个'
_netrc
'文件,* 而不是 * 一个'.netrc
'文件。它的内容是相当标准的(用你的值替换
<examples>
):型
Luke在评论中提到:
在Windows7上使用最新版本的msysgit,我不需要设置
HOME
环境变量,只需要_netrc
文件就可以了。这确实是我在“尝试“
install
“github,.ssh
dir not there”中提到的:msysgit中包含的
git-cmd.bat
会设置%HOME%
环境变量:型
爱国者在评论中认为,“看来它对http协议不起作用”
然而,我回答说
netrc
是由curl
使用的,并且适用于HTTP协议,如this example所示(在页面中查找'netrc
'):.这里也与HTTP协议一起使用:“_netrc
/.netrc
alternative tocURL
“。在Windows上使用
netrc
支持的一个常见陷阱是,如果源https url指定了用户名,git将绕过它。例如,如果您的
.git/config
文件包含:型
Git不会通过
_netrc
解析你的凭据,要解决这个问题,请删除你的用户名,如下所示:型
替代解决方案:随着git版本1.7.9+(2012年1月):Mark Longair中的This answer详细介绍了credential cache mechanism,它 * 还 * 允许您 * 不 * 以纯文本存储密码,如下所示。
使用Git 1.8.3(2013年4月):
您现在可以使用encrypted .netrc(使用
gpg
)。在Windows上:
%HOME%/_netrc
(_
,而不是'.
')添加了一个**new read-only credential helper(在
contrib/
中),用于与.netrc/.authinfo
文件进行交互。该脚本将允许您使用gpg加密的netrc文件**,避免将凭据存储在纯文本文件中的问题。
扩展名为
.gpg
的文件将在解析之前由GPG解密。多个
-f
参数是可以的。它们按顺序处理,找到的第一个匹配条目通过凭据帮助器协议返回。如果未指定
-f
选项,则按此顺序使用主目录中的.authinfo.gpg
、.netrc.gpg
、.authinfo
和.netrc
文件。要启用此凭据帮助程序,请执行以下操作:
型
(Note Git会在helper名称前加上“
git-credential-
“,并在路径中查找它。型
完整示例见“Is there a way to skip password typing when using
https:// github
“使用Git 2.18+(2018年6月),您现在可以自定义用于解密加密的
.netrc
文件的GPG程序。参见commit 786ef50,commit f07eeed(2018年5月12日)by Luis Marsano (``)。
(由Junio C Hamano --
gitster
--合并于commit 017b7c5,2018年5月30日)git-credential-netrc
:接受gpg
选项git-credential-netrc
被硬编码为使用“gpg
”解密,而不管gpg.program选项如何。这是像Debian这样的发行版上的一个问题,它们将现代GnuPG称为其他东西,比如'
gpg2
'。ttygqcqt2#
你也可以安装Git Credential Manager for Windows来保存Git密码到Windows凭证管理器中,而不是
_netrc
。这是一种更安全的存储密码的方式。iecba09b3#
这将允许Git使用
.netrc
在HTTPS上进行身份验证:_netrc
,并位于c:\Users\<username>
中。HOME=%USERPROFILE%
的环境变量(使用控制面板中的“系统”选项设置系统范围的环境变量。根据Windows版本的不同,您可能需要选择“高级选项”)。_netrc
文件中的密码不能包含空格(引用密码无效)。whitzsjs4#
我正在发布一种使用
_netrc
从网站www.course.com下载材料的方法。如果有人要使用coursera-dl下载www.coursera.com上的开放课程材料,并且在Windows操作系统上,有人想使用类似Unix操作系统中的“.netrc”文件来添加选项
-n
而不是-U <username> -P <password>
。他/她可以这样做:1.检查Windows操作系统上的home路径:
setx HOME %USERPROFILE%
(参考VonC的答案)。它将保存HOME
环境变量为C:\Users\"username"
。1.在目录
C:\Users\"username"
中找到并创建一个文件名_netrc
。**注意:没有任何后缀。**内容如下:machine coursera-dl login <user> password <pass>
1.使用像
coursera-dl -n --path PATH <course name>
这样的命令下载课程资料。更多关于this page的coursera-dl选项细节。yjghlzjz5#
在我的操作系统WINDOWS中,我使用没有下划线的.netrc文件(就像在Linux中一样)。并且工作没有问题。
我用记事本创建了这个档案。
在档案中,我只放了一行:
机器<the_link_that_you_want>登录<your_login>密码<your_password>
例如:
机器www.gmail.com登录maria密码123456
为了保存文件,我输入了文件名:.netrc(否则,只有扩展名,根本没有名称)和文件类型:所有文件
我将存档保存在我的个人目录中(如C:/users/maria)
该目录必须与.vscode、.conda、.python等文件夹所在的目录相同。
之后,程序开始在站点中进行身份验证,没有问题。