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

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配置为始终在远程和本地创建新分支。

如果您总是想在远程设备上创建新分支以镜像和跟踪本地分支,则永久性的修复方法是:

git config --global push.default current

现在您可以在Git推送时不再出错!

其他回答

要检查当前状态,请使用gitstatus。

并遵循以下步骤:

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

我也遵循了GitHub的指示,如下所示,但我仍然面临着OP提到的同样的错误:

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

对我来说,我希望这对一些人有所帮助,我在MacOS上推送了一个大文件(1.58 GB磁盘)。在复制粘贴上面建议的代码行时,我并没有等到处理器真正完成添加。过程因此,当我键入gitcommit-m“message”时,它基本上没有引用任何文件,也没有完成将代码成功提交到GitHub所需的任何操作。

证明这一点的是,当我键入gitstatus时,通常会为添加的文件使用绿色字体。但所有的东西都是红色的,好像根本没有添加。

所以我重新调整了步骤。我键入了gitadd。并等待文件完成添加。然后我完成了接下来的步骤。

要修复它,请重新初始化并遵循正确的代码序列:

git init
git add .
git commit -m 'message'
git push -u origin master

我为一个GitHub存储库做了贡献,所以我分叉了这个项目,克隆了它,创建了自己的分支,进行了一些提交,并尝试推送。

此时,我发现我克隆的不是我的fork,而是原始的项目存储库(我没有权限将其推送到)。

所以我更改了.git/config以将原点指向我的存储库。

此时,当我尝试推送时,我收到了错误消息:src-refspec my_awesome_branch不匹配。

我所要做的就是触摸任何文件并提交它(就像你在这个答案中看到的一样):

git touch README
git commit -m "fixing error in my git repo"

然后:

git checkout master
git pull origin master
git push origin master # This will tell my remote repository about my new branch
git checkout my_awesome_branch
git push origin my_awesome_branch # Now it will work

几天前我也遇到过同样的问题。

如果您现在(2020年)创建了一个新的存储库,那么默认分支是GitHub上的main。

您现在可以在存储库分支中查看GitHub。

您还可以通过运行以下命令检查终端中的分支:

git branch

所以这就是你需要跑步的原因

git push origin main

而不是

git push origin master