所以,这就是我们要做的事情:
$ git config --global credential.helper store
$ git config --global user.name myname
$ git config --global user.password mypassword
$ tmpdir=`mktemp -d`
$ cd $tmpdir
$ git init
$ git remote add origin <https github URL ending in .git>
$ git pull
运行$ git pull
时,系统会再次提示我输入用户名和密码。我的理解是,一旦我在全局范围内设置了用户名和密码,git
岂不应该自动选择吗?我需要将这些步骤作为自动化功能的一部分运行,并且在https git url中(或通过tha提示符)显式提供用户名和密码无济于事。
如何设置它,而不必一直手动提供凭据?
答案 0 :(得分:2)
我认为这是因为您使用的是https远程URL。
根据GitHub上的this解释:
使用HTTPS远程URL具有一些优点:它比SSH容易设置,并且通常通过严格的防火墙和代理来工作。但是,它还会提示您每次拉出或推送存储库时都输入GitHub凭据。
您可以使用credential helper告诉Git每次与GitHub对话时都记住您的GitHub用户名和密码。
打开凭据助手,以便Git将您的密码保存在内存中一段时间。默认情况下,Git会将您的密码缓存15分钟。
设置git以使用凭据内存缓存
$ git config --global credential.helper cache
将缓存设置为1小时后超时(以秒为单位)
$ git config --global credential.helper 'cache --timeout=3600'
答案 1 :(得分:0)
我不认为user.password是有效的配置。
并且user.name仅用于提交作者,不是用于身份验证。
如果您想提前缓存凭据,可以使用git ls-remote
(对于私有存储库)
git ls-remote https://url/private/epository.git
# prompt for username/password
# enter username and password
然后,任何init / remote add / pull命令将不提示输入用户名/密码,重新使用为该URL域缓存的用户名/密码。