Git - Как использовать .netrc файл в окнах для сохранения пользователя и пароля

Можно ли использовать файл .netrc для Windows, когда я использую Git для клонирования удаленного репозитория с помощью http и user-password?

Ответ 1

Обновить Апрель 2013, git 1.8.3:

Теперь вы можете использовать зашифрованный .netrc (с gpg).

A новый помощник учетных данных только для чтенияcontrib/) для взаимодействия с .netrc/.authinfo файлы добавлены.

Что script позволит вам использовать gpg-зашифрованные файлы netrc, избегая проблемы с вашими учетными данными, хранящимися в текстовом файле.

Файлы с расширением .gpg будут дешифрованы GPG перед разбором.
Несколько аргументов -f в порядке. Они обрабатываются по порядку, и первая найденная совпадающая запись возвращается через вспомогательный протокол учетных данных.

Если параметр -f не указан, .authinfo.gpg, .netrc.gpg, .authinfo и .netrc файлы в вашем домашнем каталоге используются в этом порядке.

Чтобы включить этот вспомогательный помощник:

git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'

(Обратите внимание, что git будет добавлять "git-credential-" к имени помощника и искать его в пути.)

# 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'

Посмотрите полный пример на странице Есть ли способ пропустить ввод пароля при использовании https:// github"


Обновление в конце 2012 года, с git версии 1.7.9 +: Этот ответ из Mark Longair детализирует механизм кэширования учетных данных, который позволяет не хранить ваш пароль в виде простого текста как показано ниже.


(Оригинальный ответ)

Вы должны определить:

  • переменная окружения %HOME%
  • поместите файл _netrc в %HOME%

Если вы используете Windows 7

запустите cmd введите это:

setx HOME %USERPROFILE%

и% HOME% будет установлен на 'C:\Users\"username"'

тогда перейдите к нему и создайте файл под названием '_netrc'

Примечание. Для Windows вам нужен файл "_netrc", а не ".netrc".

Его содержание довольно стандартное (замените его вашими значениями):

machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>

Luke упоминает в комментариях:

Используя последнюю версию msysgit в Windows 7, мне не нужно было устанавливать переменную среды HOME. Только файл _netrc сделал трюк.

Это действительно то, о чем я упоминал в " Пытаясь" install "github, .ssh dir не существует":
git-cmd.bat, включенный в msysgit, устанавливает переменную среды% HOME%:

@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%

爱国者 верит в комментарии, что "похоже, что он не будет работать для протокола http"

Однако я ответил, что netrc используется curl и работает для протокола http, как показано в в этом примере (ищите 'netrc 'на странице):. Также используется с протоколом http здесь: " _netrc/.netrc альтернатива cURL".


Общей ловушкой с поддержкой netrc в Windows является то, что git обходит ее, если источник https url указывает имя пользователя.

Например, если ваш файл .git/config содержит:

[remote "origin"]
     fetch = +refs/heads/*:refs/remotes/origin/*
     url = https://[email protected]/p/my-project/

git не разрешит ваши учетные данные с помощью _netrc, чтобы исправить это, удалите свое имя пользователя, например:

[remote "origin"]
     fetch = +refs/heads/*:refs/remotes/origin/*
     url = https://code.google.com/p/my-project/

Ответ 2

Вы также можете установить Git Диспетчер учетных данных для Windows для сохранения паролей Git в диспетчере учетных данных Windows вместо netrc. Это более безопасный способ хранения пароля

Ответ 3

Это позволит git пройти проверку подлинности на https, используя .netrc

  • Файл должен иметь имя _netrc и расположен в c:\Users\<username>
  • Вам нужно будет установить переменную среды с именем HOME=%USERPROFILE% (Установить общесистемные переменные среды, используя параметр "Система" на панели управления. В зависимости от версии Windows вам может потребоваться выбрать "Дополнительные параметры" )
  • Пароль, хранящийся в файле _netrc, не может содержать пробелы (при этом пароль не будет работать)

Ответ 4

Отправьте способ использования _netrc, чтобы загрузить материалы с сайта www.course.com. Я надеюсь, что некоторые помогут вам.

Если кто-то собирается использовать coursera-dl для загрузки материалов открытого класса на www.coursera.com. и ON WINDOWS OS кто-то хочет использовать такой файл, как ".netrc", который находится в OS-Unix для добавления опции -n вместо -U -P для удобства. Он может сделать вот так:

  • проверьте домашний путь в ОС Windows: setx HOME %USERPROFILE% (обратитесь: VonC answer).it сохранит HOME как C:\Users\"username".

  • найдите в каталоге C:\Users\"username" и создайте имя файла _netrc. ПРИМЕЧАНИЕ: нет никакого суффикса. содержимое похоже на: machine coursera-dl login <user> password <pass>

  • используйте команду, например coursera-dl -n --path PATH <course name>, чтобы загрузить материалы класса. подробнее подробности coursera-dl для эта страница.