如何修复git错误:src refspec origin does not match any

262 阅读3分钟

这篇文章讲述了如何修复一个git错误。

error: src refspec master does not match any error: failed to push some refs to 'url.git'.

对于以下用例,可能的原因是这个错误

  • 创建并提交修改到远程版本库
  • 从命令行推送现有版本库

以下是创建、克隆和提交版本库的步骤和命令

error: src refspec master does not match any error: failed to push some refs to 'url.git'.

有两个用例successerror 流。

让我们看看如何重现这些error 用例。

这些都是不正确的添加提交和推送修改的方式,但给出了一个用例,我们如何能重现这个错误。

  • 我有一个本地项目,在b:\\githubwork 目录下创建了angular-crud-mock-api

  • 在github.com创建一个空仓库,我的仓库网址。

https://github.com/intkiran/angular-mock-api-json.git
  • 现在想把angular-curd-mock-api的代码修改提交到现有的本地应用程序创建的`angular-crud-mock-api的仓库网址中,该仓库没有与GitHub仓库同步。
  • 让我们看看如何将这些修改添加到远程仓库中
:\githubwork\angular-crud-mock-api>git remote add origin https://github.com/intkiran/angular-mock-api-json.git
  • 发布git push命令并抛出一个错误
B:\githubwork\angular-crud-mock-api>git push -u origin master
error: src refspec master does not match any
error: failed to push some refs to 'https://github.com/intkiran/angular-mock-api-json.git'

这意味着,在推送修改之前,我们必须先添加第一个文件或目录。

  • 使用下面的命令添加文件和目录git add .
B:\githubwork\angular-crud-mock-api>git add .
warning: LF will be replaced by CRLF in angular-crud-mock-api/.browserslistrc.
The file will have its original line endings in your working directory.

它将变化添加到git中的本地仓库。

现在,让我们试着用git push 命令推送修改到远程仓库。

  • 接下来,使用git push 命令推送更改。
B:\githubwork\angular-crud-mock-api>git push -u origin master
error: src refspec master does not match any
error: failed to push some refs to 'https://github.com/intkiran/angular-mock-api-json.git'

这个错误抛出了一个错误,你需要在推送命令前使用提交命令。

  • 提交更改 这里是提交到本地仓库的更改。
B:\githubwork\angular-crud-mock-api>git commit -m "Initial changes"
[master (root-commit) 96c6c0c] Initial changes
 29 files changed, 30724 insertions(+)

成功流程

让我们看看如何重现这些success 用例。

这里是你需要运行的命令序列,以避免错误。

git remote add origin https://github.com/intkiran/angular-mock-api-json.git
git add .
git commit -m "Initial changes".
git push -u origin master

下面是推送更改的输出

B:\githubwork\angular-crud-mock-api>git push -u origin master
Enumerating objects: 38, done.
Counting objects: 100% (38/38), done.
Delta compression using up to 4 threads
Compressing objects: 100% (34/34), done.
Writing objects: 100% (38/38), 260.09 KiB | 5.20 MiB/s, done.
Total 38 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/intkiran/angular-mock-api-json.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

如果你创建新的版本库或推送现有的版本库,你必须仔细检查以下事项以避免这个错误。

  • 在推送修改到主库或分支之前,你忘记了添加文件

  • 缺少或跳过git add .git commit 这些命令会出现错误。

以下是添加文件或目录的步骤

  • git提交信息中包含了double quotes ,而不是single quotes

有效

git commit -m "initial changes"

无效

git commit -m 'initial commit'
  • 请用推送命令检查分支名称

通常情况下,我们会用下面的命令推送修改。

git push -U origin `branchame`

push 命令将本地仓库的修改推送到远程仓库branchname 请确保branchname 存在。

master "是默认的分支。

下面是一个正确的命令

git push -U origin master

可能的原因

  • 分支名称没有找到
  • 分支名称拼写错误或不区分大小写

如何创建一个新的 repo 来避免这个错误?

这里有一个避免这个错误的命令列表

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

总结

在本教程中,学习如何在使用git仓库时解决git错误:src refspec origin不匹配。