我想在一行中执行以下命令:
git pull && [my passphrase]
怎么做?
我想在一行中执行以下命令:
git pull && [my passphrase]
怎么做?
Answers:
这与您要求的不完全相同,而是针对http(s):
https://user:pass@domain/repo
但这并不是真正推荐的做法,因为它会在很多地方显示用户/密码...凭证助手的用法示例
git config credential.helper store
-无限期存储凭证。git config credential.helper 'cache --timeout=3600'
-存放60分钟对于基于ssh的访问,您将使用ssh代理,该代理将在需要时提供ssh密钥。这将需要在计算机上生成密钥,将公钥存储在远程服务器上,并将私钥添加到相关的密钥库中。
我找到了一种在命令行上为https连接提供凭据的方法。您只需要指定完整的URL即可进行git pull并在其中包含凭据:
git pull https://username:password@mygithost.com/my/repository
您不需要先使用凭据克隆存储库,这意味着您的凭据不会以结尾.git/config
。(但是请确保您的shell不会出卖您,并将命令行存储在历史文件中。)
:password
部分,则在按Enter键后将提示您输入密码。这样,您的密码将不会保存在bash历史记录中。
不会直接回答问题,但是我在寻找一种方法时发现了这个问题,基本上,每次我在远程服务器上访问时,都不会重新输入密码。
好吧,git
允许您在有限的时间内缓存凭据。它是可自定义的,git config
并且此页面对此进行了很好的解释:
https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
在终端中,运行:
$ git config --global credential.helper cache
# Set git to use the credential memory cache
要自定义缓存超时,您可以执行以下操作:
$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)
然后,您的凭据将在内存中存储所需的时间。
请注意,Git 2.5+(2014年第二季度)改变了git凭证帮助器“存储” 存储未加密密码的方式。
参见Junio C Hamano的commit 17c7f4d (gitster
)
credential-xdg
调整
store
凭证帮助程序的示例后端,以在指定时遵循XDG配置文件的位置。
该文档现在说:
如果未指定:
- 凭据将搜索从
~/.git-credentials
和$XDG_CONFIG_HOME/git/credentials
,和~/.git-credentials
如果存在或不存在,则将写入凭据$XDG_CONFIG_HOME/git/credentials
。
如果我们没有@密码,则下面的cmd将起作用:
git pull https://username:pass@word@mygithost.com/my/repository
如果您拥有@密码,则将其替换为%40,如下所示:
git pull https://username:pass%40word@mygithost.com/my/repository