将 git push 从 master 更改为 main 不能解决“src refspec does not match any”错误

问题描述

我一直在尝试推送到一个新的 git 存储库,但有一段时间没有使用 git。由于我换了工作,我使用的计算机与我通常使用的计算机不同,并且以前从未在这台计算机上成功提交过。这是一台 Windows 7 PC,我使用的是 git bash

我首先设置了我的 SSH 密钥并将公钥复制到我的 github 设置中。接下来,我git remote add origin <url>将组织 github 存储库上新创建的空存储库链接到我计算机上已包含我想要提交的代码文件夹。然后我做到了:


git init
git remote add origin [email protected]:myorg/myproject.git
git commit -m "First commit"
git add .
git push -u origin master

一切正常,直到推送,这产生了这个错误

error: src refspec master does not match any
error: Failed to push some refs to '[email protected]:myorg/myproject.git'

在 StackOverflow 上搜索后,我发现了几篇文章,解释说在 2020 年,由于对所用语言的担忧,Github 已将其认存储库的名称从“master”更改为“main”。大多数回复建议只需将推送行编辑为:git push origin main 但是当我尝试此主题或该主题的变体(例如 git push origin HEAD:main)等时,它只是给了我与上述相同的错误。>

然后我认为如果我将空存储库克隆到我的计算机上可能会更好(工作正常,所以我猜我的 .SSH 密钥没有问题)然后将我的文件复制到其中(没有 {{ 1}}文件夹以防万一)。但是,当我进入推送步骤时,它只是生成了与上述相同的错误(使用“main”或“master”时)。

似乎即使 Github 现在将认分支称为“main”,Git bash 仍然将我计算机上的本地文件夹称为“master”——因此出现“不匹配任何”错误

>

我使用的 Git Bash 版本是 2020 年 3 月 23 日安装的 2.26.0.1。是否只是我的 git 版本需要更新(我今晚无法测试,因为我没有管理员权限)?

请注意,如果我执行 .git 什么也不会出现 - 不确定这意味着什么,因为其他帖子暗示这应该导致我正在使用的分支的名称。我可以看到 Git Bash 在标题中将我的本地分支称为“master”。

如果您能提供有关为什么 git show-ref 似乎不起作用以及我可以做些什么来解决此问题的任何见解,我将不胜感激。

解决方法

您应该先git add .,然后才git commit。现在你的提交失败了,因为没有暂存文件,导致没有初始提交:

git init
git remote add origin [email protected]:myorg/myproject.git
git add .
git commit -m "First commit"
git push -u origin master