我正在使用Git将更改推送到通过HTTP / WebDAV共享的存储库,每次访问HTTP远程操作时,Git都会提示输入密码。有没有办法使Git缓存密码/使远程服务器无需提示我?
远程Web服务器应该是Apache,并且可能需要重新配置。
可以使用在Git文档的第3步中提到的~/.netrc方法:
然后,在$ HOME / .netrc文件中添加以下内容(可以不添加,但是需要 很多次 输入密码):
machine <servername> login <username> password <password>
...并设置权限:
chmod 600 ~/.netrc
更新:
从git 1.7.9开始,使用本地凭证助手API似乎是最好的选择。Git带有明文凭证存储或一个不太方便但更安全的临时凭证缓存。也可以使用第三方凭证助手。目前我知道的有一个针对本机Windows凭证存储的助手和一个与OS X keychain集成的助手。(由Homebrew提供的Git构建版中有一个二进制文件,其他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
〜/ .netrc
不是全局可读,而不是在每个.git / config
上这样做) - millimoose
~/.netrc
文件。请注意保持原意并使翻译通俗易懂。 - robinst~/.netrc
的事情现在(谢天谢地)已经过时了,现在每个操作系统都可以直接集成本地凭据管理,非常方便。 - millimoose