【问题标题】:Git keeps prompting me for a passwordGit一直提示我输入密码
【发布时间】:2011-12-08 01:27:11
【问题描述】:

我已经使用 Git 有一段时间了,但不断要求输入密码的请求开始让我难以接受。

我使用的是 Mac OS X 和 GitHub,我按照 GitHub 的 Set Up Git page 的说明设置了 Git 和我的 SSH 密钥。

我还在我的 Mac OS X 钥匙串中添加了 github SSH 密钥,如 GitHub's SSH key passphrases page 中所述。我的公钥已在 Git 中注册。

尽管如此,每次我尝试 Git pull 时,我都必须输入我的用户名和密码。除了 SSH 密钥,我还需要为此设置什么吗?

【问题讨论】:

  • 愚蠢的问题,但是您是否验证过 SSH 密钥在简单地使用 ssh 到带有 git 的机器时有效?
  • 你的意思是像 ssh -T git@github.com ?是的,这很好用(如果有点慢)。
  • 对于 https url,您可以使用(使用 git1.8.3+)一个 git 凭证助手 'netrc'。见full example here
  • 我是 Windows 用户,即使将我的公钥添加到服务器的 authorized_keys 文件中,我也面临密码请求问题。真正的问题是我没有将我的公钥/私钥保存在 c:\program files\git 文件夹的 .ssh 文件夹下。如果有人遇到此类问题,请将您的密钥复制到此文件夹中并尝试推/拉。

标签: git github


【解决方案1】:

我认为您的 Git 存储库 URL 可能有误。

打开 .git/config 并找到 [remote "origin"] 部分。确保您使用的是 SSH:

ssh://git@github.com/username/repo.git

如果您单击克隆或下载并选择ssh,您可以在存储库的主页中看到 SSH URL。

而不是httpsgit 之一:

https://github.com/username/repo.git
git://github.com/username/repo.git

您现在可以使用 SSH 密钥而不是用户名和密码来验证。

如果 Git 抱怨 'origin' has already been added,请打开 .config 文件并将[remote origin] 之后的 url = "..." 部分编辑为 url = ssh://github/username/repo.git


其他服务也是如此。确保地址类似于:protocol://something@url

例如.git/config 代表 Azure DevOps:

[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

【讨论】:

  • 这可能是它。当我调用 git remote -v 我得到: origin github.com/Foo/Bar.git (fetch) origin github.com/Foo/Bar.git (push) 而使用 SSH 似乎应该是: origin git@github.com:Foo/Bar.git (fetch ) origin git@github.com:Foo/Bar.git (push) 这可能是因为我最初使用 GitHub 的 Mac 应用程序 (mac.github.com) 检查了我的项目。知道如何解决吗?
  • 要么修复 .git/config 文件中的 url,使用 git-remote 修复它,要么删除本地 repo 并使用正确的 URL 再次克隆它。
  • 只是拼写出来(因为我需要它):打开 .git/config 并在 [remote "origin"] 部分设置 url = ssh://git@github.com/username/Repo.git。这对我有用。
  • 奇怪,@GregK 的解决方案对我不起作用,但 url = git@github.com:organization/Repo.git 确实有效。 +1 引导我走上正确的道路!成功!
  • 我不能强调使用 ssh://git@github/[username]/[reponame].git 进行 CLONE 的重要性是你想使用密钥来访问 GIT 没有每次输入您的用户名和密码。我发现修复它的唯一方法是删除本地仓库并再次克隆 $ git clone ssh://git@github/[username]/[reponame].git
【解决方案2】:

配置 credential.helper

在 OS X(现在是 macOS)上,在 Terminal 中运行:

git config --global credential.helper osxkeychain

它使 Git 能够使用文件 Keychain.app 来存储用户名和密码,并从钥匙串中检索到您的私有 SSH 密钥的密码。

对于 Windows 使用:

git config --global credential.helper wincred

对于 Linux 使用:

git config --global credential.helper cache // If you want to cache the credentials for some time (default 15 minutes)

git config --global credential.helper store // if you want to store the credentials for ever (considered unsafe)

注意:第一种方法会将凭据缓存在内存中,而第二种方法会将它们以纯文本格式存储在~/.git-credentials

查看here 了解有关 Linux 方法的更多信息。
查看here 了解有关这三个方面的更多信息。

疑难解答

如果 Git 凭证助手配置正确,macOS 会将密码短语保存在钥匙串中。有时connection between SSH and the passphrases stored in the keychain 可能会中断。运行ssh-add -Kssh-add ~/.ssh/id_rsa 再次将密钥添加到钥匙串。

macOS v10.12 (Sierra) 更改为 ssh

对于 macOS v10.12 (Sierra),ssh-add -K 需要在每次重启后运行。为避免这种情况,请使用此内容创建 ~/.ssh/config

Host *
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_rsa

来自 10.12.2 的 ssh_config man 页面:

使用钥匙串

在 macOS 上,指定系统在尝试使用特定密钥时是否应在用户的钥匙串中搜索密码。当用户提供密码短语时,此选项还指定密码短语是否应在验证正确后存储到钥匙串中。参数必须是“是”或“否”。默认为“否”。

Apple 已添加 Technote 2449,它解释了发生的事情。

在 macOS Sierra 之前,ssh 会显示一个对话框,询问您的密码,并提供将密码存储到钥匙串中的选项。此 UI 不久前已被弃用并已被删除。

【讨论】:

  • 这是迄今为止最好的方法,因为 OSX 的 Github 应用程序(也可能是 Windows)默认使用 git repos 的 https 路径。使用 https 而不是 ssh/git 还有一个很好的理由,因为出于安全原因,许多公司网络只允许端口 80443 上的流量。
  • 您需要 git 1.7.10 或更新版本才能使用凭证助手。
  • +1 用于 keychain.app 解决方案。这对我来说很棒,因为我雇主的 git 服务器只支持通过 apache 提供的 http,他们强烈反对使用 .netrc 文件方法,该方法将您的密码以明文形式显示。
  • 注意,我收到了错误'credential-osxkeychain' is not a git command.,因为我没有安装凭证助手。我按照这里的说明安装它:help.github.com/articles/set-up-git#password-caching
  • 感谢 Sierra 更新,我刚刚更新,无法弄清楚为什么当我添加 git config --global credential.helper osxkeychain 时 github 一直要求 pw 我的 .ssh 目录中的配置文件修复了我。
【解决方案3】:

当我升级到 macOS v10.12 (Sierra) 时,这发生在我身上。看起来 SSH 代理在升级时被清除了。

$ ssh-add -L
The agent has no identities.

只需运行ssh-add 即可找到我现有的身份。我输入了密码,很高兴再次访问。

【讨论】:

  • +1 因 Sierra 升级而中断。请注意,密码是您的 SSH 密钥的密码,而不是您的 Mac 用户密码。
  • 执行 ssh-add 确实有效,但似乎通过关闭终端窗口重置。也许这是一个新的“功能”。
  • 请注意 - 另一个 Sierra 更新 (10.12.2) 再次发生这种情况,但同样的修复适用。
  • 有谁知道如何在终端关闭后不重置它?
  • 我刚刚将我的 macbook pro 更新到 10.12.2,它破坏了我的 git。使用 ssh-add 完全适合我。谢谢@amcc!
【解决方案4】:

正如其他人所说,您可以安装密码缓存助手。我主要只是想发布其他平台的链接,而不仅仅是 Mac。我正在运行 Linux 服务器,这很有帮助:Caching your GitHub password in Git

对于 Mac:

git credential-osxkeychain

窗户:

git config --global credential.helper wincred

Linux:

git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

【讨论】:

  • 我必须向下滚动到第三个答案才能看到 Linux 说明,这些应该在主要答案中,因为它是一个经常被引用的问题。
【解决方案5】:

使用这个:用适当的主机名替换 github.com

git remote set-url origin git@github.com:user/repo.git

【讨论】:

  • 我在查看git remote -v 时已经设置了该设置。然而,我仍然被提示输入密码。
  • 同理,我按照他的建议设置了,但还是提示输入密码,如何防止?
  • @IgorGanapolsky : 你有没有找到适合你的解决方案?
  • 这工作正常。这很奇怪,带有git@** 的远程URL 不会提示凭据,而带有https@** 的URL 会:)。于是我找到了this doc
【解决方案6】:

还要查找谁在向您询问密码。是 Git 还是您的 SSH 代理?

就我而言,每次我做git pull 时,它都会问我:

Enter passphrase for key '/work/username/.ssh/id_rsa':

所以我认为是 Git 要求输入密码。所以我一直在寻找解决方案,后来才意识到我的 SSH 代理已经关闭。可以使用eval $(ssh-agent)ssh-add 修复,如给定的here.

我还在下面粘贴一个小 sn-p,您可以将其添加到您的 ~/.bashrc 文件(或等效文件)中,以确保您的 SSH 代理在您登录时启动。

无论如何,这是我犯的一个非常愚蠢的错误,但将其发布在这里,以防万一它可以帮助某人节省一些时间,以免像我一样吠叫错误的树。

# Start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."

    # Spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
    echo succeeded
    chmod 600 ${SSH_ENV}
    . ${SSH_ENV} > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . ${SSH_ENV} > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi

【讨论】:

【解决方案7】:
git config credential.helper store

注意:虽然这很方便,但 Git 会将您的凭据以明文形式存储在项目目录下的本地文件 (.git-credentials) 中(“主”目录见下文)。如果您不喜欢这样,请删除此文件并切换到使用缓存选项。

如果您希望 Git 在每次需要连接到远程存储库时继续询问您的凭据,您可以运行以下命令:

git config --unset credential.helper

要将密码存储在 %HOME% 目录而不是项目目录中的 .git-credentials 中:使用 --global 标志

git config --global credential.helper store

【讨论】:

    【解决方案8】:

    在 Windows 和 GitHub 上使用 SSH 推送/拉取 Git 指南:An Illustrated Guide to Git on Windows

    1. 下载并安装 PuTTY
    2. 设置环境变量 'GIT_SSH' = 'path\to\plink.exe'(在安装的 putty 文件夹中) - 非常重要!!!
    3. 重启 Windows Explorer 使环境变量生效(不能只重启命令提示符)
    4. 运行 puttygen.exe 生成新密钥,将 public 密钥复制到 GitHub 站点
    5. 将这个新的私有密钥保存在磁盘上的某个安全位置(最好不要Dropbox
    6. 运行 putty.exe 并将 SSH 连接到 github.co
    7. 通过运行“shell:startup”快速进入启动文件夹。
    8. 通过选美使您的私钥在 Windows 上启动。在 Startup 文件夹中创建一个快捷方式,语法为 "path\to\pageant.exe" "path\to\privatekey"
    9. 我们不需要在存储库的 .git/config 中设置“puttykeyfile”设置
    10. 非常重要是使用了GitHub的“SSH clone URL”而不是HTTPS。

    【讨论】:

    • 没有人应该再使用腻子了。您现在可以使用内置的 Windows 10 实用程序完成所有操作。让腻子,只是腻子。
    【解决方案9】:

    使用以下命令增加超时时间,以便您可以重新输入密码一段时间

    git config --global credential.helper 'cache --timeout 3600'
    

    我将它用于 Bitbucket 和 GitHub,它适用于两者。你唯一需要做的就是 3600 以秒为单位。将其增加到您想要的任何程度。我将其更改为259200,大约是 30 天。这样我每 30 天左右重新输入一次密码。

    【讨论】:

    • 好吧,我发现重启后就不会这样了,所以重启后还是需要输入密码,不管超时...
    • 这是在缓存中制作的好方法 :) 至少节省了我的时间。谢谢
    • @BenWinding 因为它将凭据存储在内存中。
    【解决方案10】:

    Windows for Git 1.7.9+ 中,在命令提示符下运行以下命令以在文本编辑器中打开配置文件:

    git config --global --edit
    

    然后在文件中,如果不存在以下块,则添加或相应地进行编辑:

    [credential "https://giturl.com"]
    username = <user id>
    helper = wincred
    

    保存并关闭文件。完成上述更改后,您只需提供一次凭据。

    【讨论】:

    • 这很好,你节省了我的时间,现在我可以专心工作了,非常感谢兄弟。
    • 这对我不起作用。 "错误:编辑器出现问题'"D:/Programs/GitExtensions/GitExtensions.exe" fileeditor'"
    【解决方案11】:

    如果您想stop Git from always asking您获取您的 GitHub 存储库的登录凭据,这很容易做到。

    使用 SSH 而不是 HTTPS

    您可以使用 SSH 而不是 HTTPS 更新源远程"

    git remote set-url origin git@github.com:username/your-repo.git
    

    配置 Git 以存储您的密码和用户名

    以下是让 Git 存储用户名和密码的方法:

    git config --global credential.helper store
    

    接下来,保存会话的用户名和密码:

    git config --global credential.helper cache
    

    【讨论】:

      【解决方案12】:

      我觉得 static_rtti 提供的答案在某种意义上是 hacky。我不知道这是否在早期可用,但 Git 工具现在提供凭据存储。

      缓存模式

      $ git config --global credential.helper cache
      

      使用“缓存”模式将凭据保存在内存中一段时间​​。没有任何密码存储在磁盘上,并且会在 15 分钟后从缓存中清除。

      商店模式

      $ git config --global credential.helper 'store --file ~/.my-credentials'
      

      使用“存储”模式将凭据保存到磁盘上的纯文本文件中,并且它们永不过期。

      我个人使用的是商店模式。我删除了我的存储库,克隆了它,然后不得不输入我的凭据一次。

      参考:7.14 Git Tools - Credential Storage

      【讨论】:

      • 对于 Windows credential.helper cache 不起作用。应该是git config --global credential.helper wincred
      • 存储它有效,现在它允许我提交我的更改而无需一直提示输入密码,你是救生员!
      • 在 Linux 中,这为我完成了工作git config --local credential.helper store。在我的情况下,我通过 HTTPS,这样我只输入一次用户名/密码,之后,我的凭据被从 ~/.git-credentials 重用
      【解决方案13】:

      我认为你解决了你的问题,但我没有看到对我有帮助的解决方案,所以就在这里。

      在终端输入:

      echo "" > ~/.ssh/known_hosts
      

      这将清空您的 known_hosts 文件,并且您必须添加您使用并连接到的每个主机,但它解决了问题。

      【讨论】:

      • cat /dev/null &gt; ~/.ssh/known_hosts 也会这样做。
      • &gt; ~/.ssh/known_hosts 更短:)
      • rm ~/.ssh/known_hosts 也应该完成这项工作。不过我建议不要这样做。
      • 如果您需要从 ~/.ssh/known_hosts 中删除主机,有一种比清除文件影响较小的方法。 ~/.ssh/known_hosts 只是一个文本文件,如果你能在文件中找到有问题的主机,你可以删除它们的行。您可能需要在编辑之前备份文件。如果文件中只有几个条目,那么清除它可能不是一个坏主意。我在很多服务器上工作,所以我的 ~/.ssh/known_hosts 中有数百个条目,我还没有准备好将它们全部删除以删除一些条目。
      • @papan 这并不能阻止 git 询问我的密码!
      【解决方案14】:

      在适用于 Linux 的 Windows 子系统 (WSL) 上,这是我发现的唯一可行的解​​决方案:

      eval`ssh-agent`; ssh-add ~/.ssh/id_rsa

      这是 ssh-agent 没有在 WSL 中正确注册的问题。

      【讨论】:

      • 玩了一会儿,但这就是解决我的问题的原因。
      【解决方案15】:

      如果每次您尝试与 GitHub 交互时,Git 都会提示您输入用户名和密码,那么您可能正在为您的存储库使用 HTTPS 克隆 URL。

      使用 HTTPS 远程 URL 有一些优势:它比 SSH 更容易设置,并且通常可以通过严格的防火墙和代理。但是,它还会在您每次拉取或推送存储库时提示您输入 GitHub 凭据。

      您可以配置 Git 为您存储密码。 对于 Windows

      git config --global credential.helper wincred
      

      【讨论】:

        【解决方案16】:

        我遇到了同样的问题。 MacOS Mojave 钥匙串不断要求输入密码。为了安全起见,您的 id_rsa 应使用密码进行加密。 然后尝试将其添加到钥匙串ssh-add -K ~/.ssh/id_rsa

        如果您的密钥位于 ~/.ssh 以外的另一个文件夹中,则替换为正确的文件夹。

        Keychain 现在知道您的 ssh 密钥,希望现在一切正常。

        如果您仍然遇到问题,请尝试

        1. brew install keychain
        
        2. echo '/usr/local/bin/keychain $HOME/.ssh/id_rsa' >> ~/.bash_profile
           echo 'source $HOME/.keychain/$HOSTNAME-sh' ~/.bash_profile
        
        3. ssh-add -K ~/.ssh/id_rsa
        

        希望它现在应该可以工作了。

        【讨论】:

        • 谢谢!最佳解决方案对我不起作用,但像你说的那样使用 ssh-add 最终为我解决了这个问题。
        【解决方案17】:

        orkoden 关于在终端中使用带有 Git 的钥匙串的答案不完整,并引发错误。这是您必须执行的操作,以将您在终端中输入的用户名和密码保存在您的钥匙串中:

        curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain -o git-credential-osxkeychain
        sudo mv git-credential-osxkeychain /usr/local/bin
        sudo chmod u+x /usr/local/bin/git-credential-osxkeychain
        

        然后输入

        git config --global credential.helper osxkeychain
        

        如果你在 curl 之前已经完成了 Git 配置,那没问题;它会工作的。

        【讨论】:

        • 如果我在 linux 上会怎样。
        【解决方案18】:

        正如上面的static_rtti所说,改变

        https://github.com/username/repo.git
        git://github.com/username/repo.git
        

        ssh://git@github.com/username/repo.git
        

        我自己将 .git/config 文件中的 https 更改为 ssh,但它仍然无法正常工作。然后我看到您必须github.com 更改为git@github.com。获取实际正确 URL 的一个好方法是转到您的项目页面并单击:

        Change HTTPS to SSH to get the right URL

        然后将此 URL 添加到配置文件中。

        【讨论】:

        • 我的配置文件中已经有了这个我还应该检查什么?
        • 你在github.com上也改了吗?
        【解决方案19】:

        运行 macOS Cataline 10.15,钥匙串缓存方法对我不起作用。我想使用https:// 而不是ssh

        这对我有用:

        git remote rm origin
        
        git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git
        

        这也应该在 GitLab 上工作

        确保用户名是否包含电子邮件地址,以删除 @email 部分,否则您将收到一条错误消息,指出 URL using bad/illegal format or missing URL

        希望这会有所帮助!

        【讨论】:

        • 这是唯一对我有用的解决方案。 your_git_username 很关键。实际上没有必要输入 :your_git_password。此时,尽管它仍然要求输入“密码”,但它现在会接受帐户密码。
        【解决方案20】:

        如果您使用https 协议,Git 会提示您输入密码。如果您使用ssh,它将使用您的私钥进行身份验证,而不是询问密码。 (https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account)

        以下是解决此问题的方法:

        git remote -v

        这将显示来源的网址。你会注意到这个网址中的https。 (例如:https://github.com/PrestaShop/PrestaShop.git

        现在,您必须先删除它并添加带有ssh 的网址

        git remote remove origin

        git remote add origin git@github.com:PrestaShop/PrestaShop.git

        【讨论】:

          【解决方案21】:

          我同意“codehugger”并使用“orkoden”的说明,它对我有用 - 在 NetBeans 7.3 上 - 当您右键单击文件并选择上下文菜单 - 推送 - 打开“推送到远程”窗口 -这里有两种选择:

          1. origin:https://github.com/myaccount/myproject.git/

          2. https://github.com/myaccount/myproject.git/

          如您所见,区别在于 URL 中的 origin 参数 - 您不想选择此选项 (1) 您想检查选项 (2),这对我来说很好。

          【讨论】:

            【解决方案22】:

            第 1 步:检查您当前的配置

            cat .git/config
            

            你会得到:

            [core]
                repositoryformatversion = 0
                filemode = true
                bare = false
                logallrefupdates = true
                ignorecase = true
                precomposeunicode = true
            [remote "origin"]
                url = https://github.com/path_to_your_git.git
                fetch = +refs/heads/*:refs/remotes/origin/*
            [user]
                name = your_username
                email = your_email
            [branch "master-staging"]
                remote = origin
                merge = refs/heads/master-staging
            

            第 2 步:删除您的远程来源

            git remote rm origin
            

            第 3 步:使用您的用户名和密码添加远程源

            git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git
            

            【讨论】:

            • 在您再次添加远程源后,您还需要将您的分支远程和本地对齐 - 如下所示:git branch --set-upstream master origin/master
            【解决方案23】:

            根据您的配置,有不同类型的身份验证。以下是一些:

            1. git credential-osxkeychain.

              如果您的凭据无效,请通过以下方式将其删除:

                git credential-osxkeychain erase
              

              或:

                printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
              

              所以 Git 不会再要求你提供钥匙串权限。然后重新配置。

              请参阅:Updating credentials from the OS X Keychain 在 GitHub

            2. 您的 SSH RSA 密钥。

              为此,您需要将您的 SSH 密钥与您添加的密钥进行比较,如果您使用的是正确的身份,请通过 ssh-add -L/ssh-add -l 检查。

            3. 您的 HTTPS 身份验证(如果您使用 https 而不是 ssh 协议)。

              使用~/.netrc(Windows 上为%HOME%/_netrc)提供您的凭据,例如

                machine stash1.mycompany.com
                login myusername
                password mypassword
              

            了解详情:Syncing with GitHub Stack 溢出。

            【讨论】:

              【解决方案24】:

              在您可以将密钥用于 GitHub 之前,请按照教程中的此步骤操作,Testing your SSH connection

              $ ssh -T git@github.com
              # Attempts to ssh to GitHub
              

              【讨论】:

                【解决方案25】:

                如果您使用的是 Windows,并且突然在 GitHub 上开始出现这种情况,可能是由于 GitHub 最近在 2018 年 2 月 22 日disabling support for deprecated cryptographic algorithms,在这种情况下,解决方案只是下载并安装最新版本的完整版Git for Windows 或者只是Git Credential Manager for Windows

                【讨论】:

                  【解决方案26】:

                  Microsoft Stack 解决方案(Windows 和 Azure DevOps)

                  首先打开.git/config文件,确保地址如下:

                  protocol://something@url
                  

                  例如Azure DevOps 的 .git/config:

                  [remote "origin"]
                      url = https://mystore@dev.azure.com/mystore/myproject/
                      fetch = +refs/heads/*:refs/remotes/origin/*
                  

                  如果问题仍然存在,请打开 Windows 凭据管理器,单击名为 Windows 凭据 的保险箱并删除所有与 git 相关的凭据。

                  现在下次登录 git 时,它不会再消失了。

                  【讨论】:

                    【解决方案27】:

                    如果您设置了 SSH 代理,您还可以将其添加到您的 ~/.gitconfig 以强制 git 对所有 GitHub 存储库使用 SSH 而不是 HTTPS:

                    [url "ssh://git@github.com/"]
                        insteadOf = git://github.com/
                        insteadOf = https://github.com/
                    

                    (如果您主要使用公共存储库,您也可以使用pushInsteadOf 而不是insteadOf,因为无需身份验证即可从公共存储库读取)。

                    【讨论】:

                      【解决方案28】:

                      我遇到了这个问题。回购要求我每次都输入凭据。我所有其他的回购都没有要求我提供凭据。他们甚至被设置为在相同的帐户凭据下使用 HTTPS 跟踪 GitLab,所以奇怪的是,除了一个之外,它们都运行良好。

                      比较 .git/config 文件,我发现导致问题的 URL 有 2 个关键差异:

                      是否要求提供凭据:

                      https://gitlab.com/myaccount/myproject
                      

                      不要求提供凭据:

                      https://myaccount@gitlab.com/myaccount/myproject.git 
                      

                      所以添加“myaccount@”和“.git”解决了我的问题。

                      【讨论】:

                        【解决方案29】:

                        就我而言,当我尝试 cherrypick 如下所示的 URL 时,总是收到密码提示:

                        git fetch http://username@gerrit-domainname/repositoryname refs/changes/1/12345/1 && git cherry-pick FETCH_HEAD
                        

                        在另一台机器上挑选该 URL 时效果很好。但是,当我尝试使用 正确的密码 abc@12345 进行挑选时,我曾经遇到以下错误:

                        remote: Unauthorized
                        remote: Authentication failed for http://username@gerrit-domainname  
                        

                        在我的 git 配置文件中,远程 URL 如下所示:

                        url = ssh://gerrit-domainname:8080/wnc
                        

                        解决方案:
                        我通过提供我在
                        找到的 HTTP 密码 解决了身份验证失败问题 我的 gerrit 帐户 -> 设置 -> HTTP 密码

                        HTTP 密码类似于 Th+IsAduMMy+PaSS+WordT+RY+Your+OwNPaSs,与我的实际密码 abc@12345 大不相同

                        注意:我的 cherrpick 网址以 git fetch ... 开头因此,此解决方案可能适用于网址以 git fetch ... 开头的 git checkout/download

                        【讨论】:

                          【解决方案30】:

                          面临同样的问题。

                          请确保您已正确设置远程来源:

                          $git remote add origin master "https://...git " 
                          

                          【讨论】:

                            猜你喜欢
                            • 2016-07-03
                            • 2014-12-18
                            • 1970-01-01
                            • 2013-07-04
                            • 2017-07-26
                            • 1970-01-01
                            相关资源
                            最近更新 更多