如何input密码为git拉命令?
我想在一行中执行这个命令:git pull && [my passphrase]
怎么做?
这不是你所要求的,但是对于http(s):
- 你可以把密码放在.netrc文件中(windows上的_netrc)。 从那里它会自动拾起。 它将以600个权限转到您的主文件夹。
- 你也可以用
https://user:pass@domain/repo
克隆回购,但这并不是真的推荐,因为它会显示你的用户/通过很多地方… - 一个新的select是使用凭证助手 。 请注意,证书将使用标准凭证助手以明文forms存储在本地configuration中。 凭借wincred的证书助手也可以在Windows上使用。
证书助手的使用示例
-
git config credential.helper store
– 无限期地存储证书。 -
git config credential.helper 'cache --timeout=3600'
– 存储60分钟
对于基于ssh的访问,您可以使用ssh代理,在需要时提供ssh密钥。 这需要在您的计算机上生成密钥,将公钥存储在远程服务器上,并将私钥添加到相关密钥库中。
我find了一种在命令行上为https连接提供凭据的方法。 你只需要指定完整的URL来混帐,并在那里包含凭据:
git pull https://username:password@mygithost.com/my/repository
您不需要先使用凭据克隆存储库,这意味着您的凭证不会以.git/config
结尾。 (但是请确保你的shell不会背叛你,并把命令行存放在一个历史文件中。)
不直接回答这个问题,但是当我search一个方法时,我发现这个问题,基本上,我不再重新input密码每次我拉一个远程服务器 。
那么, git
允许你caching你的凭证一段有限的时间。 它可以在git config
自定义,这个页面可以很好的解释:
https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
在terminal中运行:
$ git config --global credential.helper cache # Set git to use the credential memory cache
要自定义caching超时,可以这样做:
$ git config --global credential.helper 'cache --timeout=3600' # Set the cache to timeout after 1 hour (setting is in seconds)
然后您的凭证将被存储在内存中所需的时间。
请注意,git凭证帮助程序“store”将使用Git 2.5+(Q2 2014) 存储未encryption的密码更改。
见Junio C gitster
( gitster
)的 提交17c7f4d
credential-xdg
调整凭证助手的示例“
store
”后端以在指定时遵循XDGconfiguration文件位置。
文件现在说:
如果没有指定:
- 凭证将从
~/.git-credentials
和$XDG_CONFIG_HOME/git/credentials
查找,- 凭据将被写入
~/.git-credentials
如果存在),或者$XDG_CONFIG_HOME/git/credentials
如果存在),前者则不会。