我使用以下内容克隆存储库:

git clone ssh://xxxxx/xx.git 

但在我更改一些文件并添加和提交它们之后,我想将它们推送到服务器:

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'

当前回答

检查当前分支是否仅为主分支。我面临同样的问题,我的分支是主要的。因此,运行以下命令为我完成了工作:

git推送原点main。

其他回答

我错过跑步时也遇到了同样的问题:

git add .

(必须至少有一个文件,否则会再次出现错误。)

2021 3月,Git 2.31:

空GitHub存储库的git克隆将创建一个本地存储库,其中“main”作为默认分支,即使在master上设置了init.defaultBranch!

GitHub支持的Git transfert协议v2将向客户端传递Git clone创建的本地Git存储库的远程默认分支(现在是GitHub的主分支)的名称。

这意味着添加和提交新的提交将在“main”分支上完成,即使Git客户端仍然将master作为默认分支。

下一次推送时,不再出现“src-refspec-master不匹配任何”。

当我没有提到起源的主分支时,这发生在我身上。因此,您可以尝试以下操作:

git pull origin master

这将在本地存储库中创建对源的主分支的引用。然后,您可以将本地存储库推送到源位置。

git push -u origin master

当我第一次推送到存储库时,也遇到了同样的问题。我忘记提交任何更改,正在尝试

git push -u origin main

这是通过添加提交然后执行来解决的:

git push -u origin main

对于GitLab用户,GitLab的更新版本现在将有一个“main”分支作为默认分支。

因此,您可以尝试以下操作:

git push origin main

参考:GitLab新Git默认分支名称为main