在 $git push -u origin 主命令之后,Git bash 没有请求任何身份验证,实际上什么都不做

After $git push -u origin main command, Git bash is not requesting any authentication literally does nothing

当我尝试将我的代码上传到 github 时。以下是我在 Git Bash 终端中执行的步骤。当我尝试使用 $ git push -u origin main 将代码推送到 github 时,光标移动到下一行并一直闪烁但什么也没做。

git remote add origin "https://github.com/TarunRajinikanth/Trifacta.git"
git add -A 
git config --global -user.name "username"
git config --global -user.email "useremail@gmail.com"
git commit -m "this is my first commit"
git branch -m main
git push -u origin main

2021 年 10 月更新:

issue 384再次描述问题:

During the host provider auto-detection when GCM makes a HTTP call to the remote, this can sometimes hang until a long timeout period has elapsed.

此问题现已通过 PR 481 "Speed up host provider auto-detection and make more robust" (see commit 1f926e4)

修复

2021 年 7 月更新:

Git for Windows 2.32.0(2) does include GCM (Git Credential Manager Core) v2.0.475.64295, which should solve the issue/PR 374(“修复了 Windows 上不显示 GUI 提示的错误”)。


原始答案(2021 年 6 月):

检查您的 git config credential.helper 以查看是否存在缓存机制问题。

你应该:

  • 仔细检查我们的 %PATH%(在打开 git bash 之前),以便参考 C:\Program Files\Git\mingw64\libexec\git-core
  • 仔细检查存储在 Windows 凭据管理器中的内容

你这样做:

 printf "host=github.com\nprotocol=https"|git-credential-manager get

如果您看到错误的密码,请使用以下方式将其删除:

printf "host=github.com\nprotocol=https"|git-credential-manager erase

重复 erase 命令,直到看到弹出窗口(然后 不要 输入您的凭据)

然后重复您的 git push -u origin main,并输入您的凭据以存储它们。

注意 git-for-windows/git issue 3268 points to microsoft/Git-Credential-Manager-Core issue 364.

临时解决方法:

git config --global credential.provider generic

请注意 microsoft/Git-Credential-Manager-Core v2.0.475 has just been released to fix issue 364 with PR 375,在 Git 2.32(2021 年 5 月)的背景下。
latest snapshot of Git for Windows 应该包含该修复程序。

我认为最新版本 (2.32) 中存在错误尝试将 git 降级到此版本 (2.30.x) 这是 link 到 download git 2.30.2

我也遇到了同样的问题,经过几个小时的努力终于解决了。现在我和你分享我是如何做到的。我找到了三种方法来解决这个问题,希望其中至少一种对你有用!但在解释对我有用的解决方案之前,我将逐步解释问题所在:

如果一切正常:
如果一切正常(应该如此),在 运行 执行命令后:
$ git push -u origin main
输入 GitHub 用户名和密码时会出现一个新的小 window,这是因为基本上 Git 要求 GitHub 允许进行更改。 这个“window”是 Credential Helper

问题原因:
因此,您遇到的问题是由于 身份验证问题

解决方案:

  • 1.第一种方法
    这个问题在你安装Git时经常出现:我们都倾向于点击“下一步”按钮保持默认设置不变,而不太注意要求我们的是什么。 在 Git 安装过程中,实际上,我们被要求选择 "Credential Helper"!在安装最新版本 Git 的过程中,有一个默认设置对我来说根本不起作用。所以我倾向于认为安装新版Git的人可能会运行出现这个问题(可能是Windows用户)。
    那怎么办呢?
    卸载 Git:我知道这很麻烦,因为您必须重新配置所有内容,但如果您想避免卸载 Git,那么我建议您跳过此方法。
    所以我重复一遍,卸载 Git。当您重新安装它时,当它要求您选择 Credential Helper 时要特别小心。更改默认设置,选择"Git Credential Manager",如图所示: click here to see the photo
    (事实上​​ ,如果您注意到,它说它处理 GitHub 的凭据)
    继续安装。现在你的问题应该不会再出现了。
  • 2。第二种方法
    要解决这个问题,另一种方法是将URL改成这样:
    $ git config remote.origin.url https://USERNAME:PASSWORD@github.com/USERNAME/REPONAME.git
    这样,您不仅可以在没有凭据助手帮助的情况下解决问题,而且还可以在 Git 上保存您的 Github 用户名和密码:这样您就不再需要输入每次您需要在 Github 上保存您的代码时,您的用户名和密码。 现在试试push,问题应该解决了
  • 3。第三种方法(推荐)
    要解决这个问题,您必须创建 SSH 密钥对。您无能为力,如果您想在团队中工作,迟早必须这样做。 SSH 密钥有助于确保您的本地存储库与安全的远程存储库之间的安全连接。
    这也非常有用,因为它使您不必每次都进行身份验证。
    在 Git Bash、运行 中使用以下命令生成您的 SSH 密钥对:
    $ ssh-keygen -t rsa -b 4096 -C "youremail@example.com"
    现在按键盘上的回车键两次。
    太好了,您刚刚创建了 SSH 密钥对。
    要找到它,只需转到地址:
    C:\Users\YourUsername\.ssh
    并查看隐藏文件夹。
    然后您在此文件夹中有两个文件:
    你的 public 键:id_rsa.pub
    你的私钥:id_rsa.txt
    您可以通过在记事本中打开它来复制 public 密钥。
    现在让我们看看如何将密钥添加到您的 GitHub 帐户。
    登录到您的 GitHub space,然后转到您帐户的右上角并单击“设置”。单击“SSH 和 GPG 密钥”。单击“新 SSH 密钥”。
    选择一个标题(例如 'personal key'),粘贴您的 SSH 密钥并单击“添加 SSH 密钥”。
    结束。
    您的 SSH 密钥已添加到您的 GitHub 帐户,您现在有权将代码从您的计算机推送到平台。
    PS:在推送代码之前,请记住在使用 SSH 密钥时使用正确的 url:请参阅下面的注释。
  • 其他方法??
    可能会有其他方法来解决同样的问题。如果您使用 windows,其中之一可能是在 Windows 上打开凭证管理器(通过在搜索栏中输入此名称进行搜索),然后以某种方式从那里输入您的 GitHub用户名和密码。这是我没有老老实实遵循的方法,发现晚了,不知道行不行,还是想分享给大家。

希望我对你们中的一些人有所帮助。

初学者注意事项

记住:

  • 1.当你使用SSH密钥对时,你需要使用的url不是下面的:
    https://github.com/USERNAME/REPONAME.git
    但它是以下内容:
    git@github.com:USERNAME/REPONAME.git
  • 2. 在推送你的代码之前,我提醒你添加 url 使用他命令:
    $ git remote add origin git@github.com:USERNAME/REPONAME.git
    或者,如果您添加了错误的并想更改它,请使用命令:
    $ git config remote.origin.url git@github.com:USERNAME/REPONAME.git
  • 3. origin 这个词只是一个默认名称。您可以将 url 与您希望使用的任何词相关联: $ git remote add WORD URL


第一种和第二种方法都试过了。不成功。但是,重装后,我重启了电脑,启动后,Git安装了一些restore/addition。之后,弹出window——我通过了验证,一切顺利。之后,这封信通过电子邮件寄来:

A first-party GitHub OAuth application (Git Credential Manager) with gist, repo, and workflow scopes was recently authorized to access your account. Visit https://github.com/settings/connections/applications/0120e057bd645470c1ed for more information.

最终,我达到了目的。那就更简单了。

如果您正在使用 windows 凭据管理器,请使用 CMD 而不是 git bash。然后它会为您提供可供选择的身份验证方法。