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

lov*_*esh 5 git github

我分叉了Flask存储库并从GitHub克隆了它的网站分支

git clone --recursive https://github.com/lovesh/flask.git -b website
Run Code Online (Sandbox Code Playgroud)

然后我配置了遥控器

git remote add upstream https://github.com/lovesh/flask.git -t website
git fetch upstream
Run Code Online (Sandbox Code Playgroud)

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

git add .
git commit .
Run Code Online (Sandbox Code Playgroud)

这促使我对提交发表评论,我输入了评论.现在它告诉我了

2 files changed, 69 insertions(+), 7 deletions(-)
Run Code Online (Sandbox Code Playgroud)

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

git push origin master
Run Code Online (Sandbox Code Playgroud)

它显示错误

error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/lovesh/flask.git'
Run Code Online (Sandbox Code Playgroud)

我环顾四周,有这个问题的人说他们没有在这里这里做出改变.但我确实提交,即使它然后它显示我这个错误.确认我试过

git status 
Run Code Online (Sandbox Code Playgroud)

它表明了

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

同时git log也说明我在日志中提交.我是git的新手.我错过了什么吗?

Von*_*onC 1

首先,克隆存储库后没有主分支。
git clone细节:

--branch <name>
-b <name>
Run Code Online (Sandbox Code Playgroud)

不要将新创建的HEAD指向克隆存储库指向的分支HEAD,而是指向<name>分支。
在非裸存储库中,这是将被检出的分支。
--branch还可以获取标签并HEAD在结果存储库中分离该提交。

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

git push -u origin website
Run Code Online (Sandbox Code Playgroud)

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


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

git remote文档确实提到:

使用选项,将创建-t <branch>一个仅跟踪的引用规范refs/remotes/<name>/ namespace,而不是使用默认的全局引用规范来跟踪 下的所有分支。 您可以给出多个分支来跟踪多个分支,而无需抓取所有分支。<branch>
-t <branch>

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


归档时间:

查看次数:

4344 次

最近记录:

12 年,11 月 前