Est-il possible d'utiliser un fichier .netrc sous Windows lorsque j'utilise Git pour cloner un référentiel distant avec HTTP et un mot de passe utilisateur?
Est-il possible d'utiliser un fichier .netrc sous Windows lorsque j'utilise Git pour cloner un référentiel distant avec HTTP et un mot de passe utilisateur?
Réponses:
Est-il possible d'utiliser un
.netrcfichier sous Windows?
Oui, vous devez:
%HOME%(pré-Git 2.0, n'est plus nécessaire avec Git 2.0+)_netrcfichier dans%HOME%Si vous utilisez Windows 7/10, dans une CMDsession, tapez:
setx HOME %USERPROFILE%
et le %HOME%sera réglé sur ' C:\Users\"username"'. 
Allez dans ce dossier ( cd %HOME%) et créez un fichier appelé ' _netrc'
Remarque: encore une fois, pour Windows, vous avez besoin d'un _netrcfichier « », pas d' un .netrcfichier « ».
Son contenu est assez standard (remplacez le <examples>par vos valeurs):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Luke mentionne dans les commentaires:
En utilisant la dernière version de msysgit sur Windows 7, je n'avais pas besoin de définir la
HOMEvariable d'environnement. Le_netrcfichier seul a fait l'affaire.
C'est en effet ce que j'ai mentionné dans " Essayer de" install"github, .sshdir not there ": 
git-cmd.batinclus dans msysgit définit la %HOME%variable d'environnement:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 croit dans les commentaires que "il semble que cela ne fonctionnera pas pour le protocole http"
Cependant, j'ai répondu que cela netrcest utilisé par curlet fonctionne pour le protocole HTTP, comme indiqué dans cet exemple (recherchez « netrc» dans la page):. Également utilisé avec le protocole HTTP ici: " _netrc/ .netrcalternative àcURL ".
Un piège courant avec le netrcsupport sur Windows est que git contournera son utilisation si une URL d'origine https spécifie un nom d'utilisateur.
Par exemple, si votre .git/configfichier contient:
["origine" distante]
     fetch = + refs / heads / *: refs / remotes / origin / *
     url = https: //bob@code.google.com/p/my-project/
 
Git ne résoudra pas vos informations d'identification via _netrc, pour résoudre ce problème, supprimez votre nom d'utilisateur, comme suit:
["origine" distante]
     fetch = + refs / heads / *: refs / remotes / origin / *
     url = https://code.google.com/p/my-project/
 
Solution alternative: Avec git version 1.7.9+ (janvier 2012): Cette réponse de Mark Longair détaille le mécanisme de cache des informations d'identification qui vous permet également de ne pas stocker votre mot de passe en texte brut comme indiqué ci-dessous.
Avec Git 1.8.3 (avril 2013):
Vous pouvez maintenant utiliser un .netrc chiffré (avec gpg). 
Sous Windows: %HOME%/_netrc( _, pas ' .')
Un nouvel assistant d'identification en lecture seule (in
contrib/) pour interagir avec les.netrc/.authinfofichiers a été ajouté.
Ce script vous permettrait d' utiliser des fichiers netrc cryptés par gpg , évitant ainsi le problème de stocker vos informations d'identification dans un fichier texte brut.
Les fichiers avec l'
.gpgextension seront décryptés par GPG avant l'analyse.
Les-farguments multiples sont OK. Ils sont traités dans l'ordre et la première entrée correspondante trouvée est renvoyée via le protocole d'assistance d'identification.Lorsqu'aucune
-foption est donnée,.authinfo.gpg,.netrc.gpg,.authinfo, et les.netrcfichiers dans votre répertoire sont utilisés dans cet ordre.
Pour activer cet assistant d'identification:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(Notez que Git ajoutera "
git-credential-" au nom de l'assistant et le recherchera dans le chemin.)
# 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'
Voir un exemple complet sur " Existe-t-il un moyen d'ignorer la saisie de mot de passe lors de l'utilisationhttps:// github "
Avec Git 2.18+ (juin 2018), vous pouvez désormais personnaliser le programme GPG utilisé pour décrypter le .netrcfichier crypté .
Voir commit 786ef50 , commit f07eeed (12 mai 2018) par Luis Marsano (``) . 
(Fusionné par Junio C Hamano - gitster- dans commit 017b7c5 , 30 mai 2018)  
git-credential-netrc: accepter l'gpgoption
git-credential-netrca été codé en dur pour déchiffrer avec «gpg» quelle que soit l'option gpg.program.
C'est un problème sur les distributions comme Debian qui appellent GnuPG moderne autre chose, comme 'gpg2'
http.proxydans vos variables d'environnement. Ou, au contraire, pour ajouter votre serveur à une no_proxyvariable, pour éviter d'essayer d'accéder à un serveur LAN via WAN.
                    msysgitsur Windows 7, je n'avais pas besoin de définir la HOMEvariable d'environnement. Le _netrcfichier seul a fait l'affaire.
                    Vous pouvez également installer Git Credential Manager for Windows pour enregistrer les mots de passe Git dans le gestionnaire d'informations d'identification Windows au lieu de _netrc. Il s'agit d'un moyen plus sûr de stocker les mots de passe.
.netrcfichier crypté . Vous n'aurez pas à saisir ces informations une seule fois pendant la session.
                    Cela permettra à Git de s'authentifier sur HTTPS en utilisant .netrc:
_netrcet situé dans c:\Users\<username>.HOME=%USERPROFILE%(définir les variables d'environnement à l'échelle du système à l'aide de l'option Système du panneau de configuration. Selon la version de Windows, vous devrez peut-être sélectionner «Options avancées».)._netrcfichier ne peut pas contenir d'espaces (l'indication du mot de passe ne fonctionnera pas).Je publie un moyen d'utiliser _netrcpour télécharger des documents à partir du site www.course.com.
Si quelqu'un veut utiliser le coursera-dl pour télécharger les matériaux de classe ouverte sur www.coursera.com, et sur le système d'exploitation Windows, quelqu'un veut utiliser un fichier comme ".netrc" qui est dans le système d'exploitation comme-Unix pour ajouter le option -nau lieu de -U <username> -P <password>pour plus de commodité. Il / elle peut le faire comme ceci:
Vérifiez le chemin d'accès à la maison sur le système d'exploitation Windows: setx HOME %USERPROFILE%(reportez-vous à la réponse de VonC ). Cela enregistrera la HOMEvariable d'environnement sous C:\Users\"username".
Recherchez dans le répertoire C:\Users\"username"et créez un nom de fichier _netrc. REMARQUE: il n'y a AUCUN suffixe. 
le contenu est comme:machine coursera-dl login <user> password <pass>
Utilisez une commande comme coursera-dl -n --path PATH <course name>pour télécharger le matériel de classe. Plus de détails sur les options coursera-dl pour cette page .
HOMEvariable d'environnement est importante, car elle n'est pas définie par défaut sous Windows. Vous pouvez définir cette variable dans le répertoire de votre choix (ce n'est pas nécessaireC:\users\mylogin): par exemple, au travail, je la place sur mon disque distant privé associé à mon compte Windows, ce qui me permet de changer de bureau sans avoir à perdre mes paramètres.sshou_netrc.