在新的代码库上推送主分支时出现错误

188

我刚开始使用GitHub上的Git。我按照他们的指示操作,在最后一步遇到了错误。我正在检入一个不受源代码控制(一个星期前的项目)的现有目录,除此之外,我的用例应该是很普通的。

以下是发生的情况:

$ git push origin master
error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git'

Github 的说明:

Global setup:

  Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email {username}@gmail.com

Next steps:

  mkdir projectname
  cd projectname
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:{username}/{projectname}.git
  git push origin master

4
似乎最初的提交由于某种原因没有成功。Git日志帮我看到提交是否有效。第二天再试一次成功了。谢谢! - sutee
1
如果您没有添加任何文件,也没有提交或运行git init,您总是会遇到这些问题。因此,始终运行git status来查看是否一切正常。 - raduken
从现有代码创建一个新的git仓库并创建一个分支时出现相似的错误。通过克隆git仓库解决了该错误。 - user553620
可能是在“git push”到Github时出现的错误的重复问题。 - user456814
我在遵循使用命令行将现有项目添加到GitHub教程时遇到了错误 - @sugnanprabhu的解决方案帮助了我。 - HumanInDisguise
显示剩余2条评论
29个回答

193

我曾经遇到过同样的问题,后来意识到是因为我没有添加项目文件。

git add -A
git commit -am "message"
git push origin master

是的,我曾尝试过以下方法,但对我来说解决方案是使用您的命令:git add *正确的语法是:git add . - Eric Martindale
5
做了同样的事情......哎呀。谢谢! - cbmeeks

140
错误信息表明您在本地代码库中没有 master 分支。要么推送您的主开发分支 (git push origin my-local-master:master,这将重命名为github上的 master) 或者先进行一次提交。您不能推送一个完全空的代码库。

10
我曾遇到“空仓库”问题,因为 GitHub 引用的相关指南(http://beans.seartipy.com/2008/12/09/setting-up-ruby-on-rails-projects-with-git-and-github/)并未提及“git commit -m 'first commit'”命令。一旦我使用了该命令,问题便得到解决! - Pascal Lindelauf
3
我刚刚忘记提交我的更改。 - Nick Josevski
当你说git push origin my-local-master:master时,my-local-master是什么意思?如果我有一个名为CSS-pix的文件夹,我想要推送它,该怎么办? - localhost

30

我曾经遇到过同样的问题。我删除了.git文件夹,然后按照以下命令进行操作:

  1. $ git init
  2. $ git add .
  3. $ git remote add origin git@gitorious.org:project/project.git
  4. $ git commit -m "Initial version"
  5. $ git push origin master

10

我遇到了同样的问题,以下是解决方法:

1. 在终端中输入以下命令:git add .

2. 继续输入以下命令:git commit -m "first commit"

3. 如果要将代码发送到Bitbucket,则需要输入以下命令:git push -u origin --all # pushes up the repo and its refs for the first time


6

我在创建我的第一个Git仓库时遇到了同样的问题。在创建Git origin远程时,我打错了仓库名称 - 原来是我没有将仓库名称大写。

 git remote add origin git@github.com:Odd-engine

首先,我使用以下方法删除了旧的遥控器:

git remote rm origin

然后我重新创建了起源,确保我的起源名称与我的起源拼写完全相同。

git remote add origin git@github.com:Odd-Engine

没有错误啦! :)

4

我曾经遇到过同样的错误,就像Bombe所说,我的配置中没有名为master的本地分支,尽管git branch列出了一个名为master的分支...

要解决这个问题,只需将以下内容添加到你的.git/config文件中:

[branch "master"]
    remote = origin
    merge = refs/heads/master

有点独特但能胜任工作。

3

请确保您处于一个分支上,至少是主分支。

输入以下命令:

git branch

您应该看到:

ubuntu用户:〜/git/turmeric-releng$ git branch

* (no branch)
master

然后输入:

git checkout master

那么你所有的更改都将适用于主分支(或您选择的分支)


3

看起来这个问题已经有很多答案了,但我想发表我的意见,因为我没有看到任何一个解决我遇到的问题的答案。

我在一个全新的github仓库上也遇到了这个错误。事实证明,我推送的用户没有推送权限。由于某种原因,这会导致“ERROR:repository not found”错误,而不是某种访问错误。

无论如何,我希望这能帮助那些遇到同样问题的可怜人。


2
为了解决问题,我使用以下命令将所有文件暂存到提交中。
$ git add .
$ git commit -m 'Your message here'
$ git push origin master

我遇到的问题是在git add命令中使用-u选项并没有实际添加新文件,而我的git安装不支持git add -A命令。因此,正如在这个帖子中提到的那样,我试图提交的内容是空的。

它对我起作用了!我尝试了太多的命令,但没有任何改变...但这对我来说是解决方案! - karensantana

2
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git'

除非你是泛化错误信息,否则看起来像是你直接将 git@github.com:{username}/{projectname}.git 作为你的远程 Git 仓库。你应该用你的 GitHub 用户名填写 {username},并用你项目的名称填写 {projectname}


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