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

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'

当前回答

在我的例子中,fastlane match nuke开发(它从git凭证存储和开发者门户中删除开发证书和配置文件)试图推送master,但我们没有master。由于我们有两个不同的团队,我们也有两个分支机构。解决问题的方法是打电话告诉match正确的分支:

fastlane match --git_branch <your_branch> nuke development

其他回答

添加空目录时遇到此问题。Git不允许推送空目录。这里有一个简单的解决方案。

在要推送到远程的目录中创建文件.gitkeep,并从命令行提交“空”目录:

touch your-directory/.gitkeep
git add your-directory/.gitkeep
git commit -m "Add empty directory"

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

git推送原点main。

在我的例子中,我克隆了一个存储库,但我没有切换到本地分支。

我通过这样做解决了这个问题:

在对代码进行更改之前,应执行以下操作:

git checkout branch-name

然后对代码进行更改

之后,将代码推送到分支:

git push -u origin branch-name

此外,如果您第一次将本地存储库推送到GitHub,则需要首先创建一个主分支:

git branch -M main

然后,在添加原点(或给遥控器取的任何名称)后,按下分支:

git push -u origin main

当我收到src-refspec错误时,上述解决方案都不适用。

我的工作流程:

推送到远程分支(相同的本地分支名称)删除了远程分支改变了一些东西再次推送到相同的远程分支名称(相同的本地分支名称)获取src-refspec错误。

我通过简单地创建一个新分支并再次推送来修复错误。(奇怪的是,我不能简单地重命名分支,这给我带来了致命的后果:分支重命名失败。)

我也遇到了同样的问题,并且发现我没有提交任何文件,所以当我再次尝试提交时,我收到了以下错误消息:

*** Please tell me who you are.

Run

 git config --global user.email "you@example.com"
 git config --global user.name "Your Name"

 to set your account's default identity.
 Omit --global to set the identity only in this repository.

 fatal: unable to auto-detect email address (got 'USER@WINDOWS-HE6I2CL.(none)')

然后我所做的就是在全球范围内添加我的电子邮件和姓名,然后再次提交:

git commit -m 'Initial commit'

然后按下

git push -u origin master