You must define:
- environment variable
%HOME%
- put a
_netrc
file in%HOME%
If you are using Windows 7
run the cmd type this:
setx HOME %USERPROFILE%
and the %HOME% will be set to ‘C:\Users\"username"
‘
then go to it and make a file called ‘_netrc
‘
Note: for Windows, you need a ‘_netrc
‘ file, not a ‘.netrc
‘.
Its content is quite standard (Replace the with your values):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Luke mentions in the comments:
Using the latest version of msysgit on Windows 7, I did not need to set the HOME environment variable. The
_netrc
file alone did the trick.
This is indeed what I mentioned in “Trying to “install
” github, .ssh
dir not there“:
git-cmd.bat
included in msysgit does set the %HOME% environment variable:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH% @if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 believes in the comments that “it seems that it won’t work for http protocol”
However, I answered that netrc is used by curl, and works for http protocol, as shown in this example(look for ‘netrc’ in the page): . Also used with http protocol here: “_netrc
/.netrc
alternative tocURL
“.
A common trap with with netrc support on Windows is that git will bypass using it if an origin https url specifies a user name.
For example, if your .git/config
file contains:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://bob@code.google.com/p/my-project/
Git will not resolve your credentials via _netrc
, to fix this remove your username, like so:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://code.google.com/p/my-project/