Можно ли использовать файл .netrc для Windows, когда я использую Git для клонирования удаленного репозитория с помощью http и user-password?
Обновить Апрель 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/
Вы также можете установить Git Диспетчер учетных данных для Windows для сохранения паролей Git в диспетчере учетных данных Windows вместо netrc. Это более безопасный способ хранения пароля
.netrc
. Вам не нужно будет вводить эти учетные данные даже один раз во время сеанса.
Это позволит git пройти проверку подлинности на https, используя .netrc
_netrc
и расположен в c:\Users\<username>
HOME=%USERPROFILE%
(Установить общесистемные переменные среды, используя параметр "Система" на панели управления. В зависимости от версии Windows вам может потребоваться выбрать "Дополнительные параметры" )_netrc
, не может содержать пробелы (при этом пароль не будет работать)Отправьте способ использования _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 для эта страница.
HOME
важна, потому что она не определена по умолчанию в Windows. Вы можете установить эту переменную в любой каталог, который вам нужен (это не обязательно должен бытьC:\users\mylogin
): например, на работе я установил ее на свой личный удаленный диск, связанный с моей учетной записью Windows, что позволяет мне переключать рабочие столы, не теряя мои настройки.ssh
или_netrc
.