在Git中推送提交时出现“src refspec master does not match any”消息

4038

我使用以下命令克隆我的存储库:

git clone ssh://xxxxx/xx.git 

但是在我修改了一些文件并addcommit之后,我想将它们推送到服务器:

git add xxx.php
git commit -m "TEST"
git push origin master

但我收到的错误是:

error: src refspec master does not match any.  
error: failed to push some refs to 'ssh://xxxxx.com/project.git'

71
@Marco 这不是重复的问题。那个问题非常具体,是关于将本地分支推送到远程分支的问题。而这个问题是关于初始化存储库并将其推送的问题。它们产生了相同的错误,但是产生该错误的原因和解决方法完全不同。此外,sinoohe,你应该接受一个答案。可能是第一个答案,因为它回答了问题并帮助了超过350人。 - tandrewnichols
4
希望这篇文章能对某个人有所帮助 - http://samranga.blogspot.com/2015/07/create-git-bitbucket-repository-from.html?view=sidebar。即使尝试从本地已存在的项目创建git BitBucket存储库时,问题也可能会出现错误。 - Samitha Chathuranga
47
Git又把一个简单的任务搞得很复杂。Git的开发者应该将Stack Overflow作为他们的SDLC反馈环节。超过850,000人的使用应该表明Git的工作流程有严重问题。他们需要聘请一个用户体验专家,因为他们显然无法自己解决这个问题。 - jww
12
如果您没有使用点号或某些文件添加git add,也会出现这个错误。 - Blasanka
34
最近 Github/Git 不再默认使用 "master" 分支,而是改为使用 "main" 分支,因此这可能是导致此错误的原因。 - Harini Sj
显示剩余17条评论
140个回答

5

我忘记提交代码,然后遇到了这个问题。 赶紧提交代码


很高兴我不是唯一一个。 - froggomad
是的,这种事情经常发生 ;) - Napster Scofield

5

我觉得这是因为您推送了一个无效的分支。

通常情况下,由于仓库没有一个共同的主分支(可能是开发分支),您可以使用

git branch

查看分支。


4

我曾经遇到过这个问题,因为我在远程仓库上有一个分支,但本地没有。我运行了以下命令来解决这个问题:
git fetch && git checkout '添加远程分支名称在此'
有时候出现这个问题是因为你没有将更改进行暂存,你需要运行以下git命令来完成这个操作:
git add 你的文件名.扩展名git add . 来添加所有修改。
在这一点上,你需要使用以下命令提交你的更改:
git commit -m '你的提交信息在这里'.
完成以上步骤后,你只需要使用以下命令将你的更改推送到远程仓库:
git push origin 你的分支名称.


4

我遇到的问题是在尝试重置我的仓库时。我想删除所有历史记录并不提交任何内容。然而,你至少需要添加一些内容才能提交,因此我只创建了一个空文本文件,git add . 然后 git commit -m "Reset repository"


4

我将文件创建在错误的目录中,尝试执行git push -u origin master命令,结果出现了错误。

当我使用cd命令进入当前目录后,再执行git push -u origin master命令,一切都正常了。


4

我已经创建了一个提交。确保你正在将内容推送到正确的分支。

我在输入git push origin master时,但当我输入git branch时,我在一个v1分支上,所以我必须输入git push origin v1


如果你想推送你当前的分支,一个简单的方法是只需执行 git push origin HEAD 命令,或者如果你使用的是较新版本的 Git,则执行 git push origin @ 命令,如果你使用的是 Windows 或 OS X,则执行 git push origin head 命令。 - user456814

4

我曾经遇到同样的问题,通过以下步骤解决了它:


4
首先,请确保您正在使用master分支。在我的情况下,分支是main而不是master。我执行了以下操作:
git push origin main

你可以在这张照片中看到结果:

Git problem


请阅读 为什么提问时不应上传代码或错误的图片? (例如, "只有无法用其他方式清楚说明问题的情况下,才可使用图片,例如提供用户界面的截图")。并且做正确的事情(它也适用于回答)。谢谢。 - Peter Mortensen

4
本月的一个原因可能是:GitHub 将默认的“主分支”从“master”更名为“main”。
因此,请使用git push origin main代替。

4

更新之前的���案。

另外,不要忘记GitHub已经将'Master'更改为'Main',所以请确保您通过以下方式进行推送:

git push origin main

1
这仅适用于新存储库。因此,此答案完全不准确。更多信息请参见:https://github.com/github/renaming - zinovyev
2
我认为这一点都不准确。我来到这里是因为我收到了相同的错误信息。错误发生在远程端将“master”更改为“main”,而我从未更新远程URL。 - SaltyCatFish

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