将原始主机错误推送到新存储库


181

我刚刚开始在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日志帮助我查看提交是否有效。第二天,我再次尝试成功。谢谢!
羊皮

1
如果您不添加任何文件,提交或运行git init,则总是会遇到此类问题。因此,请始终运行git status以查看是否一切正常。
raduken 2012年

从现有代码创建到新创建的git存储库的分支时出现类似错误。通过克隆git存储库解决了该错误。
user553620 2013年


Answers:


137

该错误消息得出的结论是master,您的本地存储库中没有分支。推送您的主要开发分支(git push origin my-local-master:master它将master在github 上将其重命名)或先提交。您不能推送完全空的存储库。


10
我遇到了“空存储库”问题,因为GitHub引用的相关指南(beans.seartipy.com/2008/12/09/…)没有提到“ git commit -m'first commit'”命令。一旦使用完,一切都很好!
Pascal Lindelauf

3
我刚刚忘记提交更改。
尼克·约瑟夫斯基

当你说git push origin my-local-master:master这是什么意思时my-local-master?如果我有要推送的文件夹的CSS-pix名称
Nofel

187

我遇到了同样的问题,然后因为没有真正添加项目文件而把自己打在脑海中。

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

是的,我尝试了以下操作,但是对我来说,解决方案是改用您的命令:git add *正确的语法是:git add。
埃里克·马丁代尔

5
发生了同样的事情... jeesh。谢谢!
cbmeeks 2011年

28

我遇到过同样的问题。我删除了.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

9

我有同样的问题。它解决了我的问题。如果您初始化git。你必须在航站楼上做

1) git add .

2)git commit -m "first commit"

用于发送到bitbucket

3) git push -u origin --all # pushes up the repo and its refs for the first time


6

创建我的第一个Git存储库时,我遇到了同样的问题。我在Git起源远程创建中遇到了错字-事实证明我没有将存储库的名称大写。

 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

Kinda hacky但能胜任


3

确保您在分支机构中,至少在主分支机构中

类型:

git branch

您应该看到:

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

* (no branch)
master

然后输入:

git checkout master

那么您所做的所有更改都将适合主分支(或您选择的分支)


2

为了真正解决问题,我使用以下命令将所有文件暂存到提交中。

$ git add .
$ git commit -m 'Your message here'
$ git push origin master

我遇到的问题是git add中的-u命令实际上并未添加新文件,而我安装的git不支持git add -A命令。因此,如该线程中所述,我尝试执行的提交为空。


它为我工作!我尝试了太多命令,但没有任何变化……但这是我的解决方案!
karensantana

1

我解决了我的问题。

不知道是什么问题,而是使用gitx接口提交我的暂存文件,然后...

$ git push origin master

工作...

我有同样的问题...

创建了一个新文件夹,添加到了bort模板文件中...

$ git commit -m 'first commit'

$ git remote add origin git@github.com:eltonstewart/band-of-strangers.git

$ git push origin master

然后我得到同样的错误...

错误:src refspec master不匹配。
致命的:远程挂断了意外
错误:无法将一些引用推送到'git@github.com:eltonstewart / band-of-strangers.git'


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

除非您对错误消息进行一般化,否则它看起来确实git@github.com:{username}/{projectname}.git像是您的远程Git存储库。您应该填写{username}GitHub用户名和{projectname}项目名称。


1
cd  app 

git init 

git status 

touch  test 

git add . 

git commit  -a  -m"message to log " 

git commit  -a  -m "message to log" 

git remote add origin 

 git remote add origin git@git.google.net:cherry 

git push origin master:refs/heads/master

git clone git@git.google.net:cherry test1

1

我有同样的问题。我在小写中错误地在计算机中创建了目录。更改大小写后,问题解决了(但是浪费了我的1.5个小时:()检查它的目录名和远程仓库名称是相同的。


1

看来这个问题已经有很多答案了,但是由于我还没有找到能解决我所遇到的问题的答案,因此我将与我讨论。

我在一个全新的github存储库上也遇到了这个错误。原来,我从中推送的用户没有推送访问权限。由于某种原因,这会导致出现“错误:找不到存储库”错误,而不是某种访问错误。

无论如何,我希望这对遇到同样问题的可怜人有所帮助。


1

一分钟前遇到了同样的问题,然后解决了

在github中创建一个名为wordpress的存储库...

cd wordpress
git init
git add -A
git commit -am “WordPress 3.1.3″ or any message
git remote add origin git@github.com:{username}/wordpress.git
git push -u origin master

这应该可以解决refspec问题


感谢它为我工作。.我能知道“ git add”和“ git add”和有什么不一样吗?和“ git add -A”
Satish Karuturi's

如果您使用的是2.x版本,则没有任何区别,仅当您使用的是1.x版本的检查表时,才能将来参考:stackoverflow.com/a/26039014/640727
David Chase


0

我认为在较旧版本的git中,您应该首先提交至少一个文件,然后可以再次“推送原始主机”。


0

很棒..它与空目录有关的问题仅此而已。通过在每个目录中创建一个二进制文件然后添加它们来解决我的问题。


0

初始添加和提交的工作就像一种魅力。我想这只是了解Git在存储库中管理项目的方法的问题。

之后,我便毫不费力地将数据直接发送出去。


0

我刚刚遇到了这个问题,这似乎是由于我没有在默认提交消息上方添加自定义提交消息引起的(我想,为什么要写“初始提交”,当它在Git生成的文本中清楚地说明了同样的事情时)在它下面)。

当我删除.git目录,重新初始化Git的项目目录,重新添加GitHub远程程序,将所有文件添加到新阶段,在自动生成的消息上方提交个人消息并推送到起源/主人。


0

当您在Github上创建存储库时,它将README.md文件添加到存储库中,因为此文件可能不在您的本地目录中,或者它可能具有不同的内容git push将失败。为了解决这个问题,我做了:

git pull origin master
git push origin master

这次是有效的,因为我有了README.md文件。


0

在第一次提交之前,请尝试添加一些文件,如readme.txt。如果不存在,这将“强制”远程回购创建分支主机。对我有用。


0

这是一个非常老的问题,但是对于所有像我这样最终会来到这里的新人。此解决方案仅适用于

error: src refspec master does not match any.

为新仓库创建的错误

您需要添加

git config user.email "your email"
git config user.name "name"

仅在添加电子邮件和名称后,将文件添加到git并提交

git add .
git commit -m "message"

它将像魅力一样工作


0

我也有这个错误,我提交了一个不像很多人一样推动空项目的提交,但不起作用

问题是ssl,请输入下一个

git config --system http.sslverify否

之后,一切正常:)

git push origin master




-1

我遇到了同样的问题,一些用户已经回答了这个问题。推送之前,您必须先提交。现在,对于新用户,我已经创建了一系列简单的步骤。在此之前,您需要安装git并在命令行中运行:

  • git config user.email“您的电子邮件”
  • git config user.name“名称”

创建远程存储库的步骤(我使用dropbox作为远程存储库):

1. create a directory in Dropbox (or on your remote server)
2. go to the Dropbox dir (remote server dir)
3. type git command: git init --bare
4. on your local drive create your local directory
5. go to local directory
6. type git command: git init
7. add initial files, by typing git command:: git add <filename> 
8. type git command: git commit -a -m "initial version" (if you don't commit you can't do the initial push
9. type git command: git remote add name <path to Dropbox/remote server> 
10. git push name brach (for first commit the branch should be master)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.