我将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'
我环顾四周,遇到此问题的人说他们没有将更改提交为here和here。但我确实提交,即使它然后它显示我这个错误。 确认我试过
git status
并显示
# On branch website
# Your branch is ahead of 'origin/website' by 1 commit.
#
nothing to commit (working directory clean)
同样git log
也会在日志中显示我的提交。我是git的新手。我错过了什么吗?
答案 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/*
)。