git push到GitHub存储库分支给出错误“src refspec master不匹配任何”

时间:2012-12-27 16:30:06

标签: git github

我将Flask存储库分叉并从GitHub克隆其网站分支,如

git clone --recursive https://github.com/lovesh/flask.git -b website

然后我配置了遥控器

git remote add upstream https://github.com/lovesh/flask.git -t website
git fetch upstream

然后我做了更改(我没有创建任何其他文件,但修改了2个文件)我必须制作然后添加文件并提交这样的更改

git add .
git commit .

这促使我对提交发表评论,我输入了评论。现在它给我看了

2 files changed, 69 insertions(+), 7 deletions(-)

但是当我尝试将这些更改推送到我的GitHub帐户时

git push origin master

显示错误

error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/lovesh/flask.git'

我环顾四周,遇到此问题的人说他们没有将更改提交为herehere。但我确实提交,即使它然后它显示我这个错误。 确认我试过

git status 

并显示

# On branch website
# Your branch is ahead of 'origin/website' by 1 commit.
#
nothing to commit (working directory clean)

同样git log也会在日志中显示我的提交。我是git的新手。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

试试git push origin website 可能是您以此名称配置了主分支。试着让我知道。

答案 1 :(得分:1)

首先,克隆你的回购后你没有一个主分支。
git clone详细信息:

--branch <name>
-b <name>
  

不是将新创建的HEAD指向克隆存储库HEAD所指向的分支,而是指向<name>分支。
  在非裸存储库中,这是将要检出的分支   --branch还可以在生成的存储库中对该提交中的HEAD进行标记和分离。

因此,在您的情况下,如果您想创建和跟踪本地网站分支到原点,您需要:

git push -u origin website

(之后,一个简单的git push就足够了:更多关于“git - push current vs. push upstream (tracking)”中的推送政策


您的其他远程“upstream”也只会跟踪upstream/website分支:

git remote文档确实提到了:

  

使用-t <branch>选项,而不是默认的glob refspec,以便远程跟踪refs/remotes/<name>/ namespace下的所有分支,而是创建仅跟踪<branch>的refspec。   您可以提供多个-t <branch>来跟踪多个分支而不占用所有分支。

在您的情况下,您只跟踪upstream/website+refs/heads/website:refs/remotes/upstream/website)而不是default refspec+refs/heads/*:refs/remotes/upstream/*)。