在 $git push -u origin main 命令之后,Git bash 没有请求任何身份验证,实际上啥也没做

Posted

技术标签:

【中文标题】在 $git push -u origin main 命令之后,Git bash 没有请求任何身份验证,实际上啥也没做【英文标题】:After $git push -u origin main command, Git bash is not requesting any authentication literally does nothing在 $git push -u origin main 命令之后,Git bash 没有请求任何身份验证,实际上什么也没做 【发布时间】:2021-10-04 01:08:38 【问题描述】:

当我尝试将我的代码上传到 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

【问题讨论】:

与cygwin无关。让我们在结束问题之前等待 OP 的反馈。 不,问题出在 mingw64 上。 @matt 显然是最新的 Git 加上最新的 GCM(Git Credential Manager)。我已经使用相关问题参考编辑了答案。 太好了,谢谢!我会将此作为我的规范链接。 【参考方案1】:

2021 年 10 月更新:

issue 384再次描述问题:

在 GCM 对远程进行 HTTP 调用时主机提供程序自动检测期间,这有时会挂起,直到经过很长的超时时间。

这个问题现在已通过PR 481“加速主机提供程序自动检测并变得更健壮”得到修复(参见commit 1f926e4)


2021 年 7 月更新:

Git for Windows 2.32.0(2) 确实包含GCM (Git Credential Manager Core) v2.0.475.64295,这应该可以解决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 指向microsoft/Git-Credential-Manager-Core issue 364。

作为临时解决方法:

git config --global credential.provider generic

请注意,在 Git 2.32(2021 年 5 月)的上下文中,microsoft/Git-Credential-Manager-Core v2.0.475 刚刚发布以修复问题 364 和 PR 375。latest snapshot of Git for Windows 应该包含该修复。

【讨论】:

谢谢,现在通过在 Windows 凭据管理器中添加 Github 凭据解决了这个问题。【参考方案2】:

我相信最新版本(2.32)有一个错误尝试将git降级到这个版本(2.30.x) 这是download git 2.30.2的链接

【讨论】:

同意(我的答案确实是为 Git 2.32 编写的)。此问题正在修复中,您可以使用适用于 Windows 的 Git 的最新快照对其进行测试:wingit.blob.core.windows.net/files/index.html【参考方案3】:

我也遇到了同样的问题,经过几个小时的工作,我设法解决了。现在我与您分享我是如何管理它的?。我找到了解决这个问题的三种方法,我希望其中至少一种对你有用!但在我解释对我有用的解决方案之前,我将逐步解释问题所在:

如果一切正常: 如果一切正常(应该),运行命令后:$ git push -u origin main 将出现一个新的小窗口,用于输入 GitHub 用户名和密码,这是因为基本上 Git 要求 GitHub 允许进行更改。 这个“窗口”就是 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。第二种方法 解决问题,另一种方法是把网址改成这样:$ git config remote.origin.url https://USERNAME:PASSWORD@github.com/USERNAME/REPONAME.git 这样,您不仅可以在没有 Credential Helper 的帮助下解决问题,而且还可以将您的 Github 用户名和密码保存在 Git 上:这样您就不再需要每次需要输入用户名和密码将您的代码保存在 Github 上。 现在试试push,问题应该解决了。 3。第三种方法(推荐) 要解决此问题,您必须创建一个 SSH 密钥对。你能做的很少,如果你想在一个团队中工作,你迟早会做。 SSH 密钥有助于确保本地存储库和安全远程存储库之间的安全连接。 这也非常有用,因为它使您不必每次都识别自己。 在 Git Bash 中,运行以下命令来生成 SSH 密钥对:$ ssh-keygen -t rsa -b 4096 -C "youremail@example.com" 现在在键盘上按两次 enter 键。 太好了,您刚刚创建了 SSH 密钥对。 要找到它,只需转到以下地址:C:\Users\YourUsername\.ssh 并查看隐藏文件夹。然后您在此文件夹中有两个文件: 你的公钥:id_rsa.pub 你的私钥:id_rsa.txt 您可以通过在记事本中打开公钥来复制它。 现在让我们看看如何将密钥添加到您的 GitHub 帐户。 登录到您的 GitHub 空间,然后转到您帐户的右上角并单击“设置”。单击“SSH 和 GPG 密钥”。点击“新建 SSH 密钥”。选择一个标题(例如“个人密钥”),粘贴您的 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

【讨论】:

【参考方案4】:

第一种和第二种方法都试过了。不成功。但是,重新安装后,我重新启动了计算机,启动后,Git 安装了一些还原/添加。之后,出现了一个弹出窗口——我通过了验证,一切顺利。之后,这封信通过电子邮件寄来:

最近授权具有 gist、repo 和工作流范围的第一方 GitHub OAuth 应用程序 (Git Credential Manager) 访问您的帐户。访问https://github.com/settings/connections/applications/0120e057bd645470c1ed了解更多信息。

最终,我实现了我的目标。那么它应该更容易。

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于在 $git push -u origin main 命令之后,Git bash 没有请求任何身份验证,实际上啥也没做的主要内容,如果未能解决你的问题,请参考以下文章

git问题--Push rejected: Push to origin/master was rejected

git push origin master 错误解决办法

git push --set-upstream origin

Github git push origin main 不起作用

IDEA上传Git项目报错:Push rejected: Push to origin/master

git 提交远程分支 老是提示 git push origin HEAD 问题