Git错误:src refspec master不匹配任何错误:无法推送某些引用。

60

我正尝试将一个文件添加到我的 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 *的所有方法,但是什么都不起作用。


1
git branch 的输出是什么? - Amber
我在哪里找到git分支? - user1676428
2
这是一个命令。git branch - 就像 git pushgit remote 一样。运行它并将输出添加到您的问题中。 - Amber
3
我刚遇到了这个问题,似乎是因为我没有在默认提交消息上方添加自定义提交消息所致(我想,既然下面的Git生成文本已经清楚地表明了“初始提交”,为什么还要写它呢)。当我删除了.git目录,重新初始化了项目目录以进行Git操作,重新添加了GitHub远程仓库,将所有文件添加到新阶段,使用个人消息进行提交,并推送到origin/master后,问题得以解决。 - 2540625
2个回答

162

此错误信息的一个典型原因是:

  • 当仓库已初始化 (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

请参考为什么需要显式地推送新分支? 以获取更多信息。


在执行 "git commit -m '你的信息'" 命令之前,请注意使用 "git add ." 将所有要提交的文件添加到列表中。因为如果未将文件添加到列表中,就无法提交它们。总结一下,先将要提交的文件添加到列表中,然后带有一条信息对这些文件进行提交,最后推送这些文件... - Jason
@Jason 我同意,并且我已经编辑了这个8年前的答案,使添加步骤更加明确。我还添加了一种替代方案(创建第一个初始的提交)。 - VonC
git push -f origin master - sarjeet singh
如果你已经有一个远程主分支需要用你自己的新本地主分支替换,那么是的,你需要使用"--force"。但是请确保提醒你的同事们将他们自己的本地克隆仓库重置为新的分支历史。 - VonC

21

它没有识别到你有一个主干分支,但我找到了一个解决方法。我发现主干分支并没有什么特殊之处,你可以创建另一个分支,并将其命名为主干分支,这就是我所做的。

创建主干分支的步骤:

git checkout -b master

你可以以此为基础工作。


5
不需要这样做...只需像@VonC所说添加一个提交,主分支就会创建并能够正常推送...无论如何,您都必须在某个地方进行提交...因此您提供了一个额外不必要的步骤...还是谢谢 :)) - securecurve
Ionică Bizău,为什么不点赞呢?这对我来说是正确的答案。在 Jenkins 中,请确保“checkout to specific local branch”。 - jeremyjjbrown
1
谢谢,伙计。对我来说,仅仅添加一个提交并不能解决问题,但是先运行你的命令确实有效。 - Arnaud Bouchot
git push -f origin master - sarjeet singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接