在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个回答

27

我曾经遇到过相同的问题,而这个解决方案帮助我解决了问题:

只需创建一个分支:

git checkout -b "master"

之后执行以下命令:

git push -u origin master

搞定!


1
我遇到了同样的问题,后来发现分支在主分支上。然后我按照这个方法解决了问题。 - Harish
1
同样在这里。谢谢! - Andy

26

也许分支名应该是 main 而不是 master

尝试使用以下命令:

git push origin HEAD:main

或者

git push origin main


1
这是我的问题。尝试了很多方法,然后意识到它是主要的而不是主。 - Balasubramanian S

24

GitHub 已将默认分支名称从 master 改为 main。 因此,如果您最近创建了代码库,请尝试推送 main 分支:

git push origin main

参考资料

将默认分支从master重命名 (GitHub)


21

如果您在分离 HEAD 模式下工作时遇到此错误,您可以执行以下操作:

git push origin HEAD:remote-branch-name

另外还可以参考:如何从分离的HEAD进行Git推送

如果你在本地分支上与远程分支不同,可以采用以下方法:

git push origin local-branch-name:remote-branch-name

21
  1. 首先,运行命令git add .
  2. 其次,运行命令git commit -m "message"
  3. 最后,运行命令git push origin branch

请检查拼写错误,因为那也可能导致该错误。


21
如果您忘记在第一次推送之前提交更改,就会出现这种情况。只需运行:

git commit -m "first commit"

21

要检查当前状态,请运行git status命令。

还需按照以下步骤操作:

git init
git add .
git commit -m "message"
git remote add origin "github.com/your_repo.git"
git push -u origin master

21

当您添加文件但忘记提交并推送时,会发生这种情况。

因此,请先提交文件,然后再进行推送。


20

当我忘记运行时,我遇到了同样的问题:

git add .

(您必须至少有一个文件,否则您将再次遇到错误。)


20

这只是意味着您忘记执行初始提交,请尝试执行:

git add .
git commit -m 'initial commit'
git push origin master

请执行以下代码: git commit -m "initial commit" - Yash Agrawal

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