如何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 gitstergitster )的 提交17c7f4d

credential-xdg

调整凭证助手的示例“ store ”后端以在指定时遵循XDGconfiguration文件位置。

文件现在说:

如果没有指定:

  • 凭证将从~/.git-credentials$XDG_CONFIG_HOME/git/credentials查找,
  • 凭据将被写入~/.git-credentials如果存在),或者$XDG_CONFIG_HOME/git/credentials如果存在),前者则不会。