Ответ 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/