第一次 Git 用户,推送到远程存储库需要很长时间

First time Git user, Push to remote repository takes forever

Win 10,使用 Git bash。 Git 版本 2.32.0.windows.1。研究了 similar/same 个主题,但没有帮助。

我是 Git 的新用户,正在努力学习如何使用它,之前从未使用过版本控制系统,也没有任何肉肉的人可以向我询问或展示。

我遵循了教程,甚至了解到目前为止发生了什么,但是推送到远程存储库需要很长时间并且什么都不做。到那时一切都有效。

我正在使用的教程:YouTube Link with timestamp

我成功地做到了:创建了我的第一个本地存储库,创建了虚拟测试文件(为 PCB CAD 程序随机编写了一些文本脚本,我猜这无关紧要),学会了创建分支并将东西提交给当地分支机构。我的脑袋快要爆炸了,但它起作用了,到目前为止我也明白了。但是在没有给出任何提示或线索的情况下推送到远程仓库挂起。

我做了一些研究并在 Whosebug 上找到了这个主题:link

我在 push 命令中添加了 --verbose,所以现在它看起来像这样:

$ git push -u --verbose origin main
Pushing to https://github.com/ellectroid/test_public_repository.git

然后它永远挂起。信息量极少。
另外,在上面 link 的 Whosebug post 中有人谈论协议。我尝试了 http 和 https。没有区别。

然后有人(来自 Azeez)说要确保我在 GitHub 上经过身份验证。好吧,我在浏览器中登录了,虽然我不明白它是如何连接的,但我已经登录了。然后在同一个 post 他们写了一些引述:

Select an authentication method for 'https://github.com/':

  1. Web browser (default)
  2. Personal access token option (enter for default):

我对这是什么一无所知,从来没有人要求我对 bash 中的任何内容进行身份验证,而且我不知道该怎么做。本教程不会这样做,一切都开箱即用。

我是100%Git和GitHub菜鸟,半年前注册了一个账号,今天是我第一天真正尝试使用它,我立即在没有任何关于为什么和做什么的线索的情况下得到这个,所以如果你的回复详细解释了该做什么,我将不胜感激。我只想能够将我在本地存储库中的内容推送到 GitHub。

如果重要的话,我没有使用任何代理或任何东西。

如果您需要我提供更多信息,请告诉我什么信息以及我从哪里获得这些信息。正如我所说,我对 Git 还一无所知,但非常想知道。

P.S。我知道 master 和 main 分支的名称并解释了它。

更新

第二天,当我尝试推送时,Git GUI 在 window 标题中弹出了 openSSH,要求我提供 GitHub 用户名。我输入了我的用户名,由于某种原因全都带有星号(从未见过用星号写的登录名),我输入了我的 GitHub 用户名“ellectroid”并出现“应用程序错误”window,文本为“错误:错误写入“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 经过广泛的谷歌搜索后,我发现评论中的人在谈论什么。原来在我本地存储库的隐藏文件夹 .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 window 中的 github 上进行身份验证时,我仍然遇到错误,在那里我使用星号(“ellectroid”)输入我的登录名,它会像上面一样喷出破损的管道错误。

更新 3

感谢邀请我聊天的@VonC,我们发现我所要做的就是不从 Git Bash 推送,而是从 Windows CMD 推送.然后,当我推送时,它立即提示我使用我已经创建的个人访问令牌。另外,我是用管理员权限做的。后来我更改了环境变量 PATH 以包含 bash 的路径,这样我就可以在 CMD 中写入“bash”并获得精美的颜色和东西。案件结案。

在 Windows 上,尝试从命令行(而不是从 GUI)推送以测试它是否有效。

确保在简单的 CMD 中:

  • git config credential.helper return manager-core
  • git ls-远程 https://github.com// triggers a popup where you can enter your GitHub user account name and your PAT (Personal Access Token that you need to create first)

然后尝试从您的本地存储库文件夹中git push

the discussion 开始适用于:

  • C:\Program Files\Git\bin,所以需要加入系统PATH(就是bash.exe所在的地方)
  • 以管理员身份打开的 CMD