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

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'

当前回答

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

我的工作流程:

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

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

其他回答

 sudo git push -v --progress "origin" : origin/prod_18aug2022

当我从本地分支机构推到远程分支机构时,这对我很有用。

由于多种原因,您可能会遇到此问题。

1.暂存文件的待定提交

如果您通过运行gitadd命令(即gitadd.)添加了更改,并且从未提交过这些文件,则在之后,尝试将分支推入远程存储库。在这种情况下,您将面临src-refspec-master不匹配的错误。

2.本地分支机构名称无效

如果您在分支的名称中键入了错误(即mster而不是master),则会导致此错误。表示您尝试推入的分支不在本地存储库中。

两种可能性:

1-要么忘记包含.gitignore文件。

以下是所需的所有步骤:

在远程上创建一个空的Git存储库,在本地创建.gitignore文件。GitHub在这里列出了一些示例启动终端,然后在项目中执行以下命令:git remote添加原点YOUR/origin.gitgit添加。gitcommit-m“初始提交或首次提交的任何消息”git push-u原始主机

2-或者您正在尝试创建一个新的Github项目。

Github将master替换为main作为默认分支名称。要解决此问题,请执行以下操作:

在本地项目上:删除.git文件夹(如果存在)通过在项目中启动以下操作,重新创建一个干净的存储库:

在终端中:

git init

git add .

git commit -m "YOUR FIRST MESSAGE HERE"

git branch -M main

git remote add origin _GIT_LINK_TO_PROJECT_HERE_

git push -u origin main

如果你的分支机构名称中有一个拼写错误,因此你试图推送一些不存在的东西,这也可能发生!哈

在我的例子中,我实际上创建了一个名称不正确的分支(显然是偶然的),它被称为fetrare/<something>,并试图推送feature/<some东西>

大脑会将单词作为一个单元来阅读,因此有时两个单词看起来相同,但实际上并非如此!哈

只需确保分支机构名称中没有拼写错误!(或者更好地说,检查您要推送的分支是否与您在本地定义的分支相匹配,特别是如果您正在手动推送新创建的分支git推送源特性/<newBranch>)

GitHub更新01.10.20后,您应该使用main而不是master。

这样做。。。

在GitHub上创建存储库删除本地目录中现有的.git文件转到本地项目目录并键入gitinitgit添加。gitcommit-m“我的第一次通信”现在检查您的分支机构名称,它将在您的本地项目中处于主导地位gitremoteadd origin<github存储库中的远程存储库URL>,然后键入gitremote-vgit push-f原始主机现在检查github存储库,您将看到两个分支1。主要2。主人在本地存储库中创建新分支,分支名称将为maingit结帐总管git合并主机git拉起点总管git push-f origin main

注意:从2010年10月1日起,github决定使用main而不是master分支使用默认分支名称