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

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'

当前回答

我今天也遇到了同样的问题。我创建了一个新的repo并将其克隆到我的机器上。我提交了我的代码并尝试推送它。我也收到了同样的错误。我观察到这是因为我在使用:

git推送原始主机

我在这里做错的是,我假设我的默认分支是master,而GitHub上的新默认分支是main。我推送时使用:

git推送原点主

而且效果很好。

我的解决方案只适用于最近面临这个问题的较新的repo或用户,因为GitHub正在取代主要的over-master术语。因此,如果您收到此错误,请确保检查要推送到的分支以及GitHub上的分支名称。

其他回答

我曾经遇到过这个问题,因为我在远程回购上有一个分支,但不是本地的。我做到了:gitfetch&&gitcheckout‘在这里添加远程分支名称’,这解决了我的问题。有时,当您不准备更改时会出现问题,因此,要做到这一点,您需要运行以下git命令:git-add your_file_name.extension或git-add。添加所有更改。此时,您需要通过以下方式提交更改:gitcommit-m'您的提交消息在这里'。完成所有这些操作后,只需通过以下方式将更改推送到远程回购:git推送原点your_branch_name。

尝试git show ref,看看你有哪些ref。有裁判/主管/主管吗?

由于最近的“在GitHub中用main替换master”操作,您可能会注意到有一个refs/heads/main。因此,以下命令可能会从gitpushoriginHEAD:master更改为gitpushorigin HEAD:main

您可以尝试git push origin HEAD:master作为一个更独立于本地引用的解决方案。这明确表示您希望将本地ref HEAD推送到远程ref master(请参阅git push-refspec文档)。

我也有同样的问题。我通过以下步骤做到了这一点:

1. git commit -m 'message'
2. git config --global user.email "your mail"
3. git config --global user.name "name"
4. git commit -m 'message'
5. git push -u origin master

我忘记在提交之后和推送之前执行“git pull-origin master”,这导致了同样的问题:“在git中推送提交时,src-refspec-master不匹配”。

因此,您应该做到:

1. git add .
2. git pull origin master
3. git commit -am "Init commit"
4. git push origin master

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

git add .

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