当前位置:   article > 正文

在 Git 中推送提交时消息“src refspec master does not match any”

src refspec master does not match any

问:

我克隆我的存储库:

git clone ssh://xxxxx/xx.git 

  • 1
  • 2

但是在我更改了一些文件并 add 和 commit 它们之后,我想将它们推送到服务器:

git add xxx.php
git commit -m "TEST"
git push origin master

  • 1
  • 2
  • 3
  • 4

但我回来的错误是:

error: src refspec master does not match any.  
error: failed to push some refs to 'ssh://xxxxx.com/project.git'

  • 1
  • 2
  • 3

答1:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

也许你只需要承诺。当我这样做时,我遇到了这个:

mkdir repo && cd repo
git remote add origin /path/to/origin.git
git add .

  • 1
  • 2
  • 3
  • 4

哎呀!从未承诺!

git push -u origin master
error: src refspec master does not match any.

  • 1
  • 2
  • 3

我所要做的就是:

git commit -m "initial commit"
git push origin main

  • 1
  • 2
  • 3

成功!

不要盲目地按照这一步,看看@Vi提到了什么,然后修改你的push命令来更正ref。

此错误最可能的原因是所有文件都未跟踪且尚未添加。 git add --all 如果您希望添加所有文件或者您可以有选择地添加文件。然后是 git commit -m "Initial comment"、git push origin master。这肯定会奏效。

修复了不同的问题,这很好,但不是这个实际问题的真正答案。

git commit -m 'initial commit' 应该用双引号引起来。 'git commit -m "initial commit",至少在 Windows 上。

另一个可能的原因:您实际上没有一个名为 master 的分支

答2:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

试试 git show-ref 看看你有什么参考。有裁判/负责人/大师吗?

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

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

我的主分支不在提交之上!所以我创建了一个分支,它位于所有分支的末尾,并将它们推送到服务器:

git checkout -b 测试分支; git push origin testbranch:master

git show-ref 展示了我的分支; git push origin HEAD: 为我工作。

你刚刚救了我 Vi。感谢您的git push origin HEAD:master。但是为什么像 git push --force origin master 这样的东西不起作用?

master 现在更改为 main。

答3:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

删除本地计算机上的所有文件后,我也遇到了类似的错误,我必须清理存储库中的所有文件。

我的错误信息是这样的:

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

  • 1
  • 2
  • 3

通过执行以下命令解决了这个问题:

touch README
git add README

git add (all other files)
git commit -m 'reinitialized files'
git push origin master --force  # <- caution, --force can delete others work.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

其他答案并没有解决我遇到的问题(例如,我已经提交并且仍然有这个错误),但是做一个 git push origin BRANCH --force 工作。谢谢!

请参阅this earlier answer。我怀疑您需要添加一个文件,因为 git 不会跟踪空目录。

push --force 也可能完全摧毁同事的辛勤工作。由它添加警告。

这解决了我的问题。我认为 git add 做到了。虽然一开始 git 无法识别事物,但这可能就是我遇到问题的原因。 git add 命令解决了我的问题。在那之后,我也能够在没有 --force 的情况下推动。谢谢阿约

答4:

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

git push -u origin master
error: src refspec master does not match any.

  • 1
  • 2
  • 3

为此,您需要按如下方式输入提交消息,然后推送代码:

git commit -m "initial commit"

git push origin master

  • 1
  • 2
  • 3
  • 4

成功推送给master。

我检查了它的工作。请忽略 -u 选项然后尝试

这里的问题似乎与 OP 的完全不同......但似乎包括我在内的许多人都有这个问题。

答5:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

对我来说,我必须确保在服务器(附加在 ~/.ssh/authorized_keys)和 GitHub/Bitbucket(添加到我在 GitHub 上的 SSH 密钥中)正确配置了 公钥或 Bitbucket)——它们需要匹配。然后:

git add --all :/
git commit -am 'message'
git push -u origin master

  • 1
  • 2
  • 3
  • 4

答6:

huntsbot.com – 高效赚钱,自由工作

在我只添加了一个目录之后,我发现这发生在一个全新的存储库中。

一旦我添加了一个文件(例如一个自述文件),Git push 就很好用了。

这可能有效,因为 git 实际上并不跟踪目录,只跟踪文件。因此,如果目录为空,git 不会实际添加它。

OP 添加了一个文件(xx.php),因此在这种情况下这不是问题,即使在其他情况下这可能是一个问题,并且添加一个文件可以解决该问题。

这样一个令人沮丧的问题的简单解决方案。我正在测试 repos 的创建和克隆,并创建了空目录而不是文件。

8 年后,这让我有些头疼!

在我的情况下, 1--> git init 2---> git add origin....etc 3---> git git push -u origin master ===>然后我得到了上述错误。 ===>然后我执行了以下2个命令,它消失了。 ---> git add * ---> git commit -m "Some message" --->git git push -u origin master ===>对我来说工作得很好,就我而言。

答7:

huntsbot.com – 高效赚钱,自由工作

缺少或跳过 git add . 或 git commit 可能会导致此错误:

git push -u origin master
Username for 'https://github.com': yourusername
Password for 'https://yourusername@github.com': 
error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/yourusername/foobar.git'

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

没错,业务端具体是git remote add __REMOTE_NAME__ __URL_OR_SSH__,上面的远程名称是“origin”

他们在他们的问题中添加并承诺,因此即使这对其他人有所帮助,这也不是问题所在。

但是,由于此处使用了 -u 选项,此答案确实有效。

git *create remote 是什么?

答8:

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

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

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

  • 1
  • 2
  • 3
  • 4
  • 5

答9:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

当您在特定分支中并尝试推送另一个尚不存在的分支时,也会发生这种情况,例如:

$ git branch
* version-x  # you are in this branch
  version-y

$ git push -u origin master
error: src refspec master does not match any.
error: failed to push some refs to 'origin_address'

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

哈哈。我试图推送到原始主机,但该分支不存在。它被称为起源稳定。

-u 可能在这里有所帮助。

上面这种情况,问题当然是没有本地分支master,所以不能push。您要么想要推送现有分支,要么创建主分支然后推送它,如下所示:git checkout -b master; git push -u origin master;

当我拼错分支名称时,我才得到这个。

我当地的分支机构拼写为“sheduler”,而我正在做 git push origin scheduler。哈!一封信将在编程中杀死您。哈哈

答10:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

确保您首先添加,然后提交/推送:

喜欢:

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

答11:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

我遇到了同样的问题,我使用了 --allow-empty:

$ git commit -m "initial commit" --allow-empty
...
$ git push
...

  • 1
  • 2
  • 3
  • 4
  • 5

补充

此问题的主要原因之一是某些 Git 服务器(例如 BitBucket)在克隆新存储库时没有初始化其 master 分支。

这是唯一真正有效的。

原文链接:https://www.huntsbot.com/qa/EVZq/message-src-refspec-master-does-not-match-any-when-pushing-commits-in-git?lang=zh_CN&from=csdn

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/586051
推荐阅读
相关标签
  

闽ICP备14008679号