Git:错误:源引用规范main与任何内容都不匹配。

22

我试图通过 VSCode 使用 git,但由于不知道如何在 VSCode 上使用 Git,它把一切都搞砸了。
接着我试着像往常一样使用 CMD (Windows)。我正在学习,以前从未见过这种错误,所以不知道该怎么解决。

但当我尝试推送到主分支时,它显示了以下错误:

error: src refspec main does not match any
error: failed to push some refs to 'myPathToRepo'

我尝试过:

  • 我尝试使用另一个分支,那个分支可以正常工作,但是我想使用主分支。
  • 我甚至尝试删除git文件夹并重新初始化它。

我在StackOverflow上看到了其他帖子,大多数都说“先提交再推送,因为在未提交时推送会引发此错误”。

在删除.git/文件夹并重新启动后,它开始显示相同的错误。

>git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

>git push -u origin main
error: src refspec main does not match any
error: failed to push some refs to 'myPathToRepo'

这是我的第一次提交:

[master (root-commit) 061a06e] first commit

PS. 我只有'main'分支。

我运行的命令:

git init
git remote add origin 'pathToMyRepo'
git add -A
git commit -m "first commit"
git push
git push -u origin main

请帮忙。


https://stackoverflow.com/search?q=%5Bgit%5D+error%3A+src+refspec+main+does+not+match+any - phd
6个回答

24

你没有一个名为main的分支,你有一个名为master的分支。

要么使用正确的名称进行推送:

git push -u origin master

或者将您的本地分支名称更改为 main 并使用它:

git branch -m main
git push -u origin main

提交到我的代码库路径时出现以下错误。
到 pathToMyRepo ! [rejected] main -> main(首先获取) 错误:无法将某些引用推送到“pathToMyRepo” 提示:更新被拒绝,因为远程包含您没有本地副本的工作。这通常是由于另一个存储库正在推送到相同的引用。在再次推送之前,您可能需要先集成远程更改(例如,“git pull…”)。 提示:有关详细信息,请参见“git push --help”中的“有关快进的说明”。
- naveen
你按照错误信息的建议做了吗? - 1615903
我尝试了git pull,然后它说“当前分支没有跟踪信息。请指定要对哪个分支进行变基。” 然后我尝试了>git pull origin main,然后它说“致命错误:拒绝合并不相关的历史记录”。然后我执行了“git pull origin main --allow-unrelated-histories”,问题就解决了。然后我执行了'git push -u origin main',现在我可以像往常一样使用它了。我真的需要专注于错误而不仅仅是让它工作,所以下次我就不会遇到解决它们的问题了。但是谢谢,我会选择这个答案来帮助其他人。 - naveen

20

仅需确保你的文件夹中有东西可以提交

  1. git init
  2. git remote add origin '路径到您的仓库'
  3. git add .
  4. git commit -m "第一次提交"
  5. git push -u origin main

1
这正好解决了我的问题。 - R. Zhu

11
在我的情况下,我只是忘记了第一次提交。
解决方案是使用命令:git commit -am "initial commit" 我希望错误信息更加明确。

3

请确保在设置好以下内容后再启动VSCode:

git config --global init.defaultbranch main

这样,当您使用VSCode初始化新的代码库并进行第一次提交时,您创建的默认本地分支将是main而不是master


0
在GitLab上使用时:
推送一个已存在的Git存储库
cd existing_repo
git remote rename origin old-origin
git remote add origin https://git.fhict.nl/I872272/test3.git
git push -u origin --all
git push -u origin --tags

-1
$ git config --global user.mail
hacker@DESKTOP-4HNH4GR MINGW64 ~/OneDrive/Desktop/HACKER git (main)
$ git init
Initialized empty Git repository in C:/Users/hacker/OneDrive/Desktop/HACKER git/
.git/
hacker@DESKTOP-4HNH4GR MINGW64 ~/OneDrive/Desktop/HACKER git (master)
$ git add .
hacker@DESKTOP-4HNH4GR MINGW64 ~/OneDrive/Desktop/HACKER git (master)
$ git remote add origin https://github.com/STARLA712/naistudio.git
hacker@DESKTOP-4HNH4GR MINGW64 ~/OneDrive/Desktop/HACKER git (master)
$ git branch -m main
hacker@DESKTOP-4HNH4GR MINGW64 ~/OneDrive/Desktop/HACKER git (main)
$ git remote rename origin old-origin
hacker@DESKTOP-4HNH4GR MINGW64 ~/OneDrive/Desktop/HACKER git (main)
$ git remote add origin "https://github.com/STARLA712/naistudio.git"
$ git push -u origin --all
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch.
Everything up-to-date
hacker@DESKTOP-4HNH4GR MINGW64 ~/OneDrive/Desktop/HACKER git (main)
$ git push -u origin --tags
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch.
Everything up-to-date

欢迎来到Stack Overflow。请阅读[答案]。特别是,请确保您的答案与所提出的问题相关。不清楚上面显示的命令如何回答问题,因为它们只是一个通用的“如何开始使用Git”的命令,没有任何解释或上下文。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接