我正在使用Git将更改推送到通过HTTP/WebDAV共享的存储库,Git会提示输入访问HTTP远程的每个操作的密码.有没有办法让Git缓存密码/让远程服务器不提示我?
远程Web服务器应该是Apache,如果需要,可以重新配置.
mil*_*ose 61
方法是使用这个Git文档的第3步中概述的〜/ .netrc :
然后,将以下内容添加到$ HOME/.netrc(您可以不使用,但会被要求输入密码很多次):
Run Code Online (Sandbox Code Playgroud)machine <servername> login <username> password <password>...并设置权限:
Run Code Online (Sandbox Code Playgroud)chmod 600 ~/.netrc
从git 1.7.9开始,似乎可以采用原生凭证助手API.Git带有明文凭证存储或不太方便但更安全的临时凭证缓存.也可以使用第三方凭证助手.到目前为止,我知道本机Windows Credential Store的帮助程序,以及与OS X钥匙串集成的帮助程序.(Homebrew发布的Git版本有一个二进制文件,就像其他OS X Git发行版一样.Github也提供了一个独立的二进制文件.)
通常,设置一次凭证助手应该足够了:
git config --global credential.helper wincred
Run Code Online (Sandbox Code Playgroud)
或者代替wincred,使用适合您的平台的任何帮助程序.(如果帮助程序可执行文件的名称是git-credential-wincred,您设置选项的值将是wincred,等等)
凭证帮助程序还支持在同一主机上为不同存储库提供单独的凭据集的需要.
Ksh*_*rma 28
在您的仓库中运行此命令:
git config credential.helper store
Run Code Online (Sandbox Code Playgroud)
然后推送到服务器一次:
git push
Run Code Online (Sandbox Code Playgroud)
用于推送到服务器的凭据将保存在~/.git-credentials.
从本指南所说明这里.
小智 17
你为什么不能在远程网址中使用密码?
$ git config remote.origin.url = http://username:password@origin_link.com/repository.git
Run Code Online (Sandbox Code Playgroud)