我正在使用Git将更改推送到通过HTTP / WebDAV共享的存储库,Git会提示输入访问HTTP远程的每个操作的密码。有没有办法让Git缓存密码/远程服务器没有提示我?
远程网络服务器应该是Apache,如有必要,可以重新配置。
答案 0 :(得分:61)
方法是使用this Git documentation第3步中概述的〜/ .netrc:
然后,将以下内容添加到您的$ HOME / .netrc(您可以不用,但将会 要求输入密码 lot 次:)
machine <servername> login <username> password <password>
...并设置权限:
chmod 600 ~/.netrc
从git 1.7.9开始,似乎可以采用原生凭证助手API。 Git带有明文credential store或不太方便但更安全的临时credential cache。也可以使用第三方凭证助手。到目前为止,我知道a helper for the native Windows Credential Store和one that integrates with the OS X keychain。 (Homebrew发布的Git版本有一个二进制文件,就像其他OS X Git发行版一样.Github还提供standalone binary。)
通常,设置一次凭证助手应该足够了:
git config --global credential.helper wincred
或者代替wincred
,使用适合您平台的任何帮助程序。 (如果帮助程序可执行文件的名称为git-credential-wincred
,则您将选项设置为wincred
等的值。)
凭据帮助程序还支持在同一主机上为不同存储库提供单独的凭据集。
答案 1 :(得分:29)
在您的仓库中运行此命令:
git config credential.helper store
然后推送到服务器一次:
git push
用于推送到服务器的凭据将保存在~/.git-credentials
。
本指南here中的说明。
答案 2 :(得分:17)
为什么不能在远程网址中使用密码?
$ git config remote.origin.url = http://username:password@origin_link.com/repository.git