第一次使用 Git 用户,推送到远程存储库需要很长时间
Posted
技术标签:
【中文标题】第一次使用 Git 用户,推送到远程存储库需要很长时间【英文标题】:First time Git user, Push to remote repository takes forever 【发布时间】:2021-12-27 17:06:36 【问题描述】:Win 10,使用 Git bash。 Git 版本 2.32.0.windows.1。研究了类似/相同的主题,但没有帮助。
我是 Git 的新用户,正在努力学习如何使用它,以前从未使用过版本控制系统,而且我没有任何肉体的人可以询问或展示给我。
我按照教程进行操作,甚至了解到目前为止发生的情况,但是推送到远程存储库需要很长时间并且什么也没做。到目前为止一切正常。
我正在使用的教程:YouTube Link with timestamp
我成功地做到了:创建了我的第一个本地存储库,创建了虚拟测试文件(为 PCB CAD 程序获取了一个带有一些文本的随机脚本,我猜没关系),学会了创建一个分支并提交东西到当地分支机构。我的头快要爆炸了,但它起作用了,我到现在都明白了。但是推送到远程仓库会挂起,没有给出任何提示或线索。
我做了一些研究,在 *** 上找到了这个主题:link
我在 push 命令中添加了 --verbose,所以现在看起来像这样:
$ git push -u --verbose origin main
Pushing to https://github.com/ellectroid/test_public_repository.git
然后它永远挂起。信息量极少。 此外,在上面链接中的 *** 帖子中,有人谈到了协议。我试过http和https。没有区别。
然后有人(通过 Azeez)说要确保我在 GitHub 上通过了身份验证。好吧,我在浏览器中登录了,虽然我不明白它是如何连接的,但我已经登录了。然后在同一篇文章中他们写了一些引用:
为“https://github.com/”选择一种身份验证方法:
Web 浏览器(默认) 个人访问令牌选项(默认输入):
我对这是什么一无所知,我从未被要求对 bash 中的任何内容进行身份验证,我也不知道该怎么做。本教程没有这样做,并且一切都可以直接使用。
我是一个 100% 的 Git 和 GitHub 菜鸟,半年前注册了一个帐户,但今天是我真正尝试使用它的第一天,我立即面对这个问题,不知道为什么以及该怎么做,所以如果您的回复详细说明了该怎么做,我将不胜感激。我只是希望能够将本地仓库中的内容推送到 GitHub。
我没有使用任何代理或任何东西,如果这很重要的话。
如果您需要我提供更多信息,请告诉我哪些信息以及我从哪里获得这些信息。正如我所说,我对 Git 还一无所知,但非常想知道。
附:我知道 master 和 main 分支名称并考虑了它。
更新
第二天,当我尝试推送时,一个 Git GUI 弹出窗口标题中带有 openSSH,要求我输入 GitHub 用户名。我输入了我的用户名,出于某种原因,所有的用户名都带有星号(从未见过用星号写的登录名),我输入了我的 GitHub 用户名“ellectroid”,并出现“应用程序错误”窗口,其中包含文本“错误:错误写入“stdout”:损坏的管道”。我打开了详细的错误信息,上面写着:
error writing "stdout": broken pipe
error writing "stdout": broken pipe
while executing
"puts $::answer"
(procedure "finish" line 14)
invoked from within
"finish"
invoked from within
".b.ok invoke"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list $w invoke]"
(procedure "tk::ButtonUp" line 24)
invoked from within
"tk::ButtonUp .b.ok"
(command bound to event)
更新 2 经过广泛的谷歌搜索,我发现了 cmets 中的人在说什么。原来在我的本地仓库中的隐藏文件夹 .git 中有一个名为“config”的文件,没有扩展名(这样解释很难吗?抱歉,我说我是菜鸟,你可以用它来形容菜鸟) ,所以这里是这个“配置”文件的内容:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://github.com/ellectroid/test_public_repository.git
fetch = +refs/heads/*:refs/remotes/origin/*
[remote "origin2"]
url = http://github.com/ellectroid/test_public_repository.git
fetch = +refs/heads/*:refs/remotes/origin2/*
我尝试 origin2 来尝试使用 http 而不是 https。在 Git GUI OpenSSH 窗口中在 github 上进行身份验证时仍然出现错误,在该窗口中我使用星号(“ellectroid”)输入我的登录信息,它会像上面一样喷出损坏的管道错误。
更新 3
感谢@VonC,他邀请我参加聊天,我们发现我所要做的不是从 Git Bash 推送,而是从 Windows CMD 推送。然后,当我推送时,它立即提示我使用我已经创建的个人访问令牌。另外,我是用管理员权限完成的。后来我更改了环境变量 PATH 以包含 bash 的路径,所以我可以在 CMD 中编写“bash”并获得花哨的颜色和东西。结案。
【问题讨论】:
“永远”有多长? (5 秒?5 分钟?5 年?)你使用的是什么版本的 Git? (运行git --version
)
“永远”我的意思是“永远”。昨天有一次是 1 小时,直到我中止(多次尝试,只留下一个挂了那么久)。那段时间它什么也没做。现在将在问题中添加 git 版本
我想我突然得到了一个 Git GUI 窗口,它询问我的 GitHub 用户名。也许这就是问题所在?昨天什么都没弹出。现在将在那里提供我的凭据,看看会发生什么
在 github (elletroid) 上输入我的登录信息,得到“错误:错误写入“stdout:损坏的管道””。将完整的日志消息添加到问题中
有趣的是,由于某种原因,登录是通过 Tcl/TK 进行的。我不“做”Windows,但我的理解是这是不对的。我会把它留给一些 Git-for-Windows 大师来回答,但我会更新你的标签(我想你想要 git-for-windows 在这里)。
【参考方案1】:
在 Windows 上,尝试从命令行(而不是 GUI)推送以测试这是否可行。
确保在一个简单的 CMD 中:
git config credential.helper
确实返回 manager-core
git ls-remote https://github.com// 触发一个弹出窗口,您可以在其中输入您的 GitHub 用户帐户名和您的 PAT(您需要的个人访问令牌 to create first)
然后在本地存储库文件夹中尝试 git push
。
来自the discussion,这开始与:
C:\Program Files\Git\bin
,所以你需要将它添加到系统PATH中(这是bash.exe
所在的位置)
以管理员身份打开的 CMD
【讨论】:
1) 我实际上使用的是 Git Bash (cmd),而不是 GUI。 GUI 刚刚安装,但我没有使用它 2) credential.helper 返回 manager-core 3) 我没有听说过 PAT。我确实收到了一个弹出窗口,但是当登录到带有星号的字段时出现管道错误(为什么登录是带有星号的字段?)。我现在会尝试创建 PAT,但我真的不擅长这个。将在几分钟内报告。感谢您的宝贵时间。 创建了 PAT。我现在该怎么办?请用白痴友好的语言; _________________我尝试了 $ git ls-remote github.com fatal: repository 'github.com' not found ________________ 然后我尝试了 git ls-remote github.com/ellectroid/test_public_repository.git (我的仓库)并且命令立即执行,没有任何反应。没有弹出窗口。我可以写更多的命令。仍然无法推动 - 永远挂起。 一分钟后(在我取消推送命令之后)弹出窗口出现“打开 SSH”、“github.com:”的用户名,当我在全部(甚至什么都没有) 还是找不到输入PAT的地方 让我们continue this discussion in chat.以上是关于第一次使用 Git 用户,推送到远程存储库需要很长时间的主要内容,如果未能解决你的问题,请参考以下文章
VS团队资源管理器(VS自带git)使用说明_使用VS自带git推送到远程存储库