【问题标题】:Why does git pull ask for password despite setting it before?尽管之前设置了密码,为什么 git pull 要求输入密码?
【发布时间】:2020-01-08 16:06:20
【问题描述】:

所以,这就是我们正在尝试做的事情:

$ 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 提示符)中明确提供用户名和密码将无济于事。

如何进行设置,这样我就不必一直手动提供凭据?

【问题讨论】:

标签: git docker


【解决方案1】:

我认为这是因为您使用的是 https 远程 url。

根据this来自GitHub的解释:

使用 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'

【讨论】:

    【解决方案2】:

    我不相信 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 域缓存的那些。

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2019-11-20
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 2014-04-26
      • 1970-01-01
      相关资源
      最近更新 更多