Error: src refspec master does not match any. when trying to push to Bitbucket repo
Error: src refspec master does not match any. when trying to push to Bitbucket repo
我在 Bitbucket
上创建了一个新的存储库,并按照规定的非常简单的步骤进行操作。首先,我在我的本地文件夹中做了 git init
以进行版本控制。然后我做了:
git remote add origin https://my_account@bitbucket.org/my_account/my_project.git
成功了。最后一步是:
git push -u origin master
我获得了以下信息:
error: src refspec master does not match any.
error: failed to push some refs to 'https://my_account@bitbucket.org/my_account/my_project.git'
为什么会出现此错误?
您没有 master
分支。
考虑您执行的步骤:
git init
:这创建了一个新的空存储库,没有提交。
鉴于没有提交,提交在哪个或哪些分支上? (这是一个有点哲学性的问题,但值得您尽最大努力来回答。)
git remote add origin <em>url</em>
:这个加了一个remote,这基本上只是一个 URL 的简称。您原本空的存储库现在有一个远程,名为 origin
,它是 URL.
的缩写
git push origin master
:这要求您的 Git 推送到由短名称 [=12] 指定的 URL 处的另一个 Git =],你的 master
分支上的所有提交,不在 他们的 master
分支上的所有提交,然后将他们的 master
分支设置为指向与您的 master
分支相同的特定 分支提示 提交。
现在,计算存储库中的所有提交。那里有多少?您希望您的 Git 在第 3 步中推送多少次提交?分支 master
上有多少次提交?如果没有提交,可以分支 master
甚至 exist 吗? (这让我们回到步骤 1 中的哲学问题。)
现在假设你 git add
一些文件到你的 index (索引是你构建 next 提交的地方),然后 运行 git commit
。你会有多少次提交?提交将在哪个或哪些分支上进行? (这个问题最终出人意料地棘手,尽管事实上显而易见的答案——“所有新提交,因此是一个单一提交,将在分支 master
上”——是正确答案。)
在 Git 的世界里,一个分支 永远不会 是空的——它永远不会没有提交。没有提交的分支根本不存在。然而奇怪的是,你可以on这样的分支。 (这些分支有两个不同的形容词用于描述或创建它们,具体取决于您正在查看的 Git 命令或输出:unborn branch 和 orphan分支.)
在Git中的分支意味着你的下一个提交,你建立的那个在索引中,将 扩展 该分支,向其添加新的提交。因此,您的问题的解决方案是在分支 master
上时至少进行一次提交,以便分支 master
在您进行第一次提交时就已经存在。然后就可以push了
如果有人仍然遇到此错误,请在 git push origin master
之前尝试 git add .
和 git commit -m "init"
。希望这对您有所帮助。
最后我尝试了这个。有效。
git push origin HEAD:<remoteBranch>
我在 Bitbucket
上创建了一个新的存储库,并按照规定的非常简单的步骤进行操作。首先,我在我的本地文件夹中做了 git init
以进行版本控制。然后我做了:
git remote add origin https://my_account@bitbucket.org/my_account/my_project.git
成功了。最后一步是:
git push -u origin master
我获得了以下信息:
error: src refspec master does not match any.
error: failed to push some refs to 'https://my_account@bitbucket.org/my_account/my_project.git'
为什么会出现此错误?
您没有 master
分支。
考虑您执行的步骤:
git init
:这创建了一个新的空存储库,没有提交。鉴于没有提交,提交在哪个或哪些分支上? (这是一个有点哲学性的问题,但值得您尽最大努力来回答。)
的缩写git remote add origin <em>url</em>
:这个加了一个remote,这基本上只是一个 URL 的简称。您原本空的存储库现在有一个远程,名为origin
,它是 URL.git push origin master
:这要求您的 Git 推送到由短名称 [=12] 指定的 URL 处的另一个 Git =],你的master
分支上的所有提交,不在 他们的master
分支上的所有提交,然后将他们的master
分支设置为指向与您的master
分支相同的特定 分支提示 提交。
现在,计算存储库中的所有提交。那里有多少?您希望您的 Git 在第 3 步中推送多少次提交?分支 master
上有多少次提交?如果没有提交,可以分支 master
甚至 exist 吗? (这让我们回到步骤 1 中的哲学问题。)
现在假设你 git add
一些文件到你的 index (索引是你构建 next 提交的地方),然后 运行 git commit
。你会有多少次提交?提交将在哪个或哪些分支上进行? (这个问题最终出人意料地棘手,尽管事实上显而易见的答案——“所有新提交,因此是一个单一提交,将在分支 master
上”——是正确答案。)
在 Git 的世界里,一个分支 永远不会 是空的——它永远不会没有提交。没有提交的分支根本不存在。然而奇怪的是,你可以on这样的分支。 (这些分支有两个不同的形容词用于描述或创建它们,具体取决于您正在查看的 Git 命令或输出:unborn branch 和 orphan分支.)
在Git中的分支意味着你的下一个提交,你建立的那个在索引中,将 扩展 该分支,向其添加新的提交。因此,您的问题的解决方案是在分支 master
上时至少进行一次提交,以便分支 master
在您进行第一次提交时就已经存在。然后就可以push了
如果有人仍然遇到此错误,请在 git push origin master
之前尝试 git add .
和 git commit -m "init"
。希望这对您有所帮助。
最后我尝试了这个。有效。
git push origin HEAD:<remoteBranch>