Есть ли способ сделать git помнить пароль для пулов WebDAV?

Я работаю с Git нажатием изменений в репозитории, разделяемом по HTTP/WebDAV, и Git запрашивает пароль для каждой операции, которая обращается к удаленному HTTP-клиенту. Есть ли способ сделать Git кешировать пароль/чтобы удаленный сервер не запрашивал меня?

Удаленный веб-сервер должен быть Apache и при необходимости может быть перенастроен.

Ответ 1

Способ использования ~/.netrc, как описано в шаге 3 этой документации Git:

Затем добавьте следующее к вашему $HOME/.netrc(вы можете обойтись, но попросил ввести пароль много раз):

machine <servername>
login <username>
password <password>

... и установите разрешения:

chmod 600 ~/.netrc

UPDATE:

Как и в случае с Git 1.7.9, кажется, что путь был бы встроенным API-интерфейсом учетных данных. Git поставляется с открытым текстом хранилище учетных данных или менее удобным, но более безопасным временным кэш учетных данных. Также возможно использовать сторонние помощники учетных данных. До сих пор я знаю помощник для собственного хранилища учетных данных Windows и который интегрируется с брелка OS X. (Конструкция Git, отправленная Homebrew, имеет двоичный файл для нее, как и другие дистрибутивы OS X Git. Github также предоставляет автономный двоичный.)

Как правило, должно быть достаточно настроить помощник учетных данных один раз:

git config --global credential.helper wincred

Или вместо wincred используйте любой вспомогательный инструмент, подходящий для вашей платформы. (Если имя исполняемого файла-помощника git-credential-wincred, значение, которое вы установили для параметра, будет wincred и т.д.)

Помощники учетных данных также поддерживают необходимость иметь отдельные наборы учетных данных для разных репозиториев на одном и том же хосте.

Ответ 2

Запустите эту команду в своем репо:

git config credential.helper store

Затем нажмите один раз на сервер:

git push

Учетные данные, которые вы используете для перемещения на сервер, будут сохранены в ~/.git-credentials.

Инструкции, взятые из этого руководства здесь.

Ответ 3

Почему вы не можете использовать пароль в удаленном URL?

$ git config remote.origin.url = http://username:[email protected]_link.com/repository.git