【问题标题】:Git error: src refspec master does not match any error: failed to push some refs [duplicate]Git错误:src refspec master不匹配任何错误:未能推送一些参考[重复]
【发布时间】:2025-11-21 18:05:01
【问题描述】:

我正在尝试将文件添加到我在 BitBucket 上的存储库中,但遇到了问题。

我正在使用 GIT,这是我输入的内容

$ cd lis4368/assignments
$ git remote
$ git remote -v
$ git remote rm origin

然后我输入这个(这是 BitBucket 告诉我输入的)

$ git remote add origin https://cpb09e@bitbucket.org/cpb09e/cpb09e.git
$ git push -u origin master

我不断收到此错误消息:

error: src refspec master does not match any.
error: failed to push some refs to 'https://cpb09e@bitbucket.org/cpb09e/cpb09e.git'

有人可以帮帮我吗?我已经尝试了从 git commit 到 rm -rf * 的所有方法,但我根本无法工作。

【问题讨论】:

  • git branch 的输出是什么?
  • 在哪里可以找到 git 分支?
  • 这是一个命令。 git branch - 就像 git pushgit remote。运行它并将输出添加到您的问题中。
  • 我刚遇到这个问题,好像是我的not在默认提交消息上方添加了自定义提交消息(我想通了,为什么要写“初始提交” ,当它在下面的 Git 生成的文本中清楚地说明了同样的事情时)。当我删除 .git 目录、为 Git 重新初始化项目目录、重新添加 GitHub 远程、将所有文件添加到新阶段、在自动生成的消息上方使用个人消息提交并推送到时,问题解决了起源/主人。

标签: git bitbucket git-push refspec


【解决方案1】:

此消息的一个典型根本原因是:

  • 当 repo 初始化时 (git init lis4368/assignments),
  • 从未提交过

即,如果您至少没有添加和提交一次,则不会有本地 master 分支可以推送到。

先尝试创建一个提交:

  • 通过添加 (git add .) 然后添加 git commit -m "first commit"
    (假设您有合适的文件添加到索引中)
  • 或通过创建第一个空提交:git commit --allow-empty -m "Initial empty commit"

然后再试git push -u origin master

请参阅“Why do I need to explicitly push a new branch?”了解更多信息。

【讨论】:

  • 需要注意的是,在 > git commit -m "Your Message" 之前,请确保添加所有要提交的文件 > git add 。因为如果不将文件添加到列表中,您将无法提交文件。回顾一下,您首先添加要提交的文件。然后,您提交带有消息的文件。最后推送文件...
  • @Jason 我同意,我已经编辑了这个有 8 年历史的答案,以使添加步骤更加明确。我还添加了一个替代解决方案(创建第一个初始 empty 提交)
  • git push -f origin master
  • @sarjeetsingh 如果您已经有一个远程主分支,需要用您自己的新本地主分支替换,那么是的,您需要--force。不过,请务必警告您的同事,让他们将自己的本地克隆存储库重置为新的分支历史记录。
【解决方案2】:

它不承认你有一个 master 分支,但我找到了绕过它的方法。我发现master分支并没有什么特别之处,你可以创建另一个分支并称之为master分支,这就是我所做的。

创建主分支:

git checkout -b master

你可以解决这个问题。

【讨论】:

  • 不需要这样做.. 只需像@VonC 所说的那样添加一个提交,就会创建 master 并且推送会正常工作......无论哪种方式你都必须提交一些东西......所以你提供了一个额外的不需要的步骤.. 无论如何谢谢 :))
  • Ionică Bizău 那么为什么不投票呢?这对我来说是正确的答案。在 Jenkins 中,请务必“结帐到特定的本地分支”。
  • 谢谢老兄,添加提交对我来说是不行的,先运行你的命令才有效
  • git push -f origin master