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


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

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

3 56

3 ответа:

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

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

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

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

chmod 600 ~/.netrc

обновление:

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

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

git config --global credential.helper wincred

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

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

выполните эту команду в вашем РЕПО:

git config credential.helper store

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

git push

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

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

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

$ git config remote.origin.url = http://username:password@origin_link.com/repository.git