【问题标题】:error: src refspec master does not match any错误:src refspec master 不匹配任何
【发布时间】:2014-02-11 10:29:32
【问题描述】:

我已尝试遵循this 帖子中建议的解决方案,但它不起作用,我仍然得到:src refspec master does not match any。

这是我所做的: 关注this解决方案

// adding the file I created
$ git add .
$ git commit -m 'initial commit'
$ git push origin master
error: src refspec master does not match any.

做的时候:

$ git push origin HEAD:master
b40ffdf..a0d1423  HEAD -> master // looks promising

// adding a remote
$ git remote add devstage -f <another git>
$ git merge devstage/master -s recursive -X ours
$ git push -u devstage master
error: src refspec master does not match any.

更多信息:

$ git branch 
* origin

$ git show-ref
refs/heads/origin
refs/remotes/devstage/master
refs/remotes/origin/HEAD
refs/remotes/origin/devstage
refs/remotes/origin/master
refs/remotes/origin/origin

所以我肯定缺少 refs/heads/master 但不知道如何创建它。

谢谢

【问题讨论】:

  • 你是如何创建你的仓库的?你创建了什么文件?
  • @MichaelVer: git clone https://@bitbucket.org/
  • 最近 Github 将 git push origin master 改为 git push origin main
  • 是重复的问题 Git: Message stackoverflow.com/questions/4181861/…

标签: git git-push git-remote


【解决方案1】:

这应该对你有帮助

git init
git add .
git commit -m 'Initial Commit'
git push -u origin master

【讨论】:

  • 添加 git add . 后,git push -u origin master 工作
  • 以及如何在不将其添加到远程的情况下启动本地 git repo 来帮助任何人???您缺少主要步骤 git remote add ....
  • 工作就像一个魅力
【解决方案2】:

git branch 看来,您的本地分支名称不知何故是“起源”。

您可以使用-mv 标志重命名分支,如下所示:

git branch -mv origin master

git branch 之后应该显示master :-)

为了确保名称确实是唯一误入歧途的东西,您可以运行 git log 并查看最后几个提交 - 并将它们与 bitbucket 网站上的最后几个提交进行比较。

【讨论】:

  • 开始工作我做了:>git clone https://@bitbucket.org/ 创建了以下 .git/config [core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true hideDotFiles = dotGitOnly [remote "origin"] url = https://@bitbucket.org/ fetch = +refs/heads/*:refs/remotes/ origin/* [branch "origin"] remote = origin merge = refs/heads/origin 我做错了吗?
  • 嗯,只是做git clone repo_address 应该非常好。由于某些奇怪的原因,本地分支被命名为“origin”(从 gi​​t/config 的branch [origin] 部分可以看出)。为什么这样做?我不知道。您是否尝试过我重命名分支的建议?如果它不起作用,您还可以手动更改 gitconfig 的 [branch] 部分,如下所示:[branch 'master'] remote = origin merge = refs/heads/master
  • 太棒了!我也遇到了这个问题 - 这是因为我克隆了一个带有非主分支的仓库(这是我想要的),但忘记在新仓库中重命名分支 master
  • 我在推送到heroku时遇到错误后来到这里,并在运行git push heroku main后发现这个答案很有用,因为此时发布github主分支的名称为main,来自master。我希望它对未来的人有所帮助,可能是我。
  • 在 github 中创建的一个全新的 repo 被设置为 main。克隆后我们可以看到“main”而不是“master”。所以这种情况下push一定是git push -u origin main
【解决方案3】:

我有同样的问题,要解决它,请按照以下步骤操作

 git init
 git add .
 git commit -m 'message'
 git push -u origin master    

在此之后,如果您仍然遇到该错误,请再次执行这些步骤

 git add .
 git commit -m 'message'
 git push -u origin master 

这对我有用,希望它能帮助任何人

【讨论】:

  • 简洁优雅。给我一个士兵。
【解决方案4】:

尝试做:

git push origin HEAD:master

【讨论】:

  • 它有效,但如果你必须推送到自己的仓库,它的作用是首先对我自己的仓库做出拉取请求,然后我必须合并我自己的拉取请求。
【解决方案5】:

我一次又一次遇到同样的错误。

我在本地存储库中添加了文件并尝试了命令

“git push origin master”

显示相同的错误

我错过了所有我没有承诺。

" git commit -m '消息' "

在运行之后它工作了

【讨论】:

  • 当你在一个新的 repo 上并且从未提交过时,这很有效。
  • 是的!我的第一个存储库遇到了这个问题
【解决方案6】:

试试下面的命令:

git push origin HEAD:master

当我简单地尝试git push 时,Git 抛出了以下错误。很明显,这是因为 Git 在推送提交时匹配本地和远程分支。这是push.default行为,你可以找到更多细节here.

fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:<Branch_Name>

To push to the branch of the same name on the remote, use

    git push origin <Branch_Name>

To choose either option permanently, see push.default in 'git help config'.

【讨论】:

    【解决方案7】:

    只需添加一个空提交即可解决问题

    $ git commit -m "empty commit" --allow-empty
    $ git push
    

    // 上面做空提交而不编辑然后推送

    【讨论】:

      【解决方案8】:

      运行命令git show-ref,结果refs/heads/YOURBRANCHNAME 如果你的分支不存在,那么你需要通过

      切换分支
      git checkout -b "YOURBRANCHNAME"
      

      git show-ref,现在将显示您的分支参考。

      现在你可以在你的分支上进行操作了。

      【讨论】:

        【解决方案9】:

        线索在错误中

        错误:src refspec master 不匹配任何内容。

        Github 最近将其默认分支更改为 ma​​in。 看看here

        在您的本地设置中,您可以重命名本地分支,如下所示

        git branch -m master main
        

        或者你可以从你的 master 推送到 main

        git push origin master:main
        

        【讨论】:

          【解决方案10】:

          在我的情况下,错误是因为我正在输入而引起的

          git push origin master

          当我在开发分支时 试试:

          git push origin branchname

          希望这对某人有所帮助

          【讨论】:

            【解决方案11】:

            错误演示:

            007@WIN10-711082301 MINGW64 /d/1 (dev)
            $ git add --all
            
            007@WIN10-711082301 MINGW64 /d/1 (dev)
            $ git status
            On branch dev
            Initial commit
            Changes to be committed:
              (use "git rm --cached <file>..." to unstage)
            
                new file:   index.html
                new file:   photo.jpg
                new file:   style.css
            
            007@WIN10-711082301 MINGW64 /d/1 (dev)
            $ git push origin dev
            error: src refspec dev does not match any.
            error: failed to push some refs to 'git@github.com:yourRepo.git'
            

            你可能不这样做$ git commit -m "discription"

            解决方案:

            007@WIN10-711082301 MINGW64 /d/1 (dev)
            $ git commit -m "discription"
            [dev (root-commit) 0950617] discription
             3 files changed, 148 insertions(+)
             create mode 100644 index.html
             create mode 100644 photo.jpg
             create mode 100644 style.css
            
            007@WIN10-711082301 MINGW64 /d/1 (dev)
            $ git push origin dev
            To git@github.com:Tom007Cheung/Rookie-s-Resume.git
             ! [rejected]        dev -> dev (fetch first)
            error: failed to push some refs to 'git@github.com:yourRepo.git'
            hint: Updates were rejected because the remote contains work that you do
            hint: not have locally. This is usually caused by another repository pushing
            hint: to the same ref. You may want to first integrate the remote changes
            hint: (e.g., 'git pull ...') before pushing again.
            hint: See the 'Note about fast-forwards' in 'git push --help' for details.
            

            【讨论】:

            • 请将图片中的文字信息直接复制到您的答案中。然后请解释这实际上是如何回答这个问题的。我的印象是它不是一个。它至少没有解释为什么不可能以及如何实际解决问题。
            【解决方案12】:

            一旦我忘记添加文件,就会发生这种情况。所以我得到了同样的错误。您需要做的就是添加文件。

            1. 添加您的文件 => git add . 或您要添加的文件的名称。你应该先用git init初始化你的repo。
            2. 提交您的更改 => git commit -m 'Initial Commit'
            3. 现在推送您的更改 => git push -u origin master

            【讨论】:

              【解决方案13】:

              当您从一个分支克隆存储库并尝试将更改推送到另一个分支时,会发生此错误,只需尝试确保与您尝试推送的分支相比,您在同一个分支中(如果它不一样)只需使用 git clone -b &lt;branchname&gt; &lt;remote-repo-url&gt; 从该特定分支再次克隆您的存储库,然后重试推送更改

              【讨论】:

                【解决方案14】:

                检查您是否从所需目录(放置文件的位置)调用了 git 命令。

                【讨论】:

                  【解决方案15】:

                  当您在分支名称中输入错误时,通常会发生此错误。

                  例如,您在分支 adminstration 上并且您想要调用: git push origin administration.

                  注意你在分支上没有第二个i 信:admin(i)stration,这就是为什么 git 阻止你推送到另一个分支!

                  【讨论】:

                    【解决方案16】:

                    在 git config 中设置用户名和密码

                    在终端输入

                    vi .git/config
                    

                    编辑网址
                    url = https://username:password@github.com/username/repo.git
                    

                    输入:wq进行保存

                    【讨论】:

                      【解决方案17】:

                      只是因为您的本地分支不计算远程存储库中的那个。 git push origin HEAD:master 让您可以忽略冲突并上传您的提交。

                      【讨论】:

                        【解决方案18】:

                        我最近遇到了同样的问题。但现在解决了这个问题。 因为,现在 GitHub 将 master 更改为 main。这对我来说很有用。 使用git push origin main 而不是git push origin master希望它会起作用。

                        【讨论】:

                          【解决方案19】:

                          确保如果您正在推送 master 分支,那么请确保您当前在 master 分支中,如果不签出到 master 分支并现在推送您的提交。要列出工作目录中的所有当前分支,请使用:

                          git branch 
                          

                          您当前工作的分支的开头应该有一个星号,例如,如果我在我的 devstage 分支上工作,它将如下所示:

                          *devstage
                          master
                          

                          在这种情况下,如果要合并 master 和 devstage 两个分支,请先推送 devstage 分支中的提交,然后执行 git pull 请求。

                          【讨论】:

                            【解决方案20】:

                            对我来说,修复似乎是“git”。 (暂存所有当前文件)。显然这是在 git init 之后需要的吗? 我接着是“get reset”(取消暂存所有文件)并继续使用完全相同的命令暂存几个文件,然后成功推送。

                               git . 
                               git reset
                            

                            【讨论】:

                              【解决方案21】:

                              对于新的存储库,该方法适用于我:

                              1. 远程与git相关的文件
                                rm -rf .git

                              2. 再次提交
                                git add . && git commit -m "your commit"

                              3. 添加 git URL 并尝试再次推送
                                git remote add origin <your git URL>

                              4. 然后再次尝试推送
                                git push -u origin master -f

                              5. 成功了!

                              由于是新的仓库,所以我删除git重新添加也没关系。

                              【讨论】:

                                【解决方案22】:

                                这发生在我身上,我发现 github 正在尝试验证我的帐户。 所以你需要这两个命令:

                                git config --global user.email <your github email>
                                git config --global user.name <your github username>
                                

                                【讨论】:

                                  【解决方案23】:

                                  FWIW,遇到了同样的错误,但相信它是由于以下一系列事件引起的:

                                  • 远程 Git 存储库是使用 master 分支创建的。
                                  • 然后创建了本地克隆。
                                  • 远程 Git 存储库随后被修改为包含一个 dev 分支,该分支被定义为默认分支,以及添加到 master 分支的权限,以防止在没有拉取请求的情况下进行更改。
                                  • 在本地克隆中发生了代码更新,准备好推送到远程存储库。

                                  然后,当尝试将更改从本地推送到远程时,收到错误“src refspec master does not match any”,或者在尝试推送到dev时,“src refspec dev does not match any”。

                                  因为本地克隆中的更改尚未完成,所以我不想炸毁它并刷新。 因此,通过将本地分支重命名为 dev 来解决此问题...

                                  $ git branch -m dev

                                  ...接下来是git push origin dev的正常推送,这次成功了,没有抛出上述错误。

                                  【讨论】:

                                    【解决方案24】:

                                    此错误也是由于不匹配 本地分支名称造成的。 确保您提供正确的本地分支名称(检查拼写和区分大小写
                                    我遇到了同样的错误,因为我的本地分支名称是“validated”并且试图使用git push -f origin validate 推送更改,将其更新为git push -f origin validated 有效。

                                    希望这会有所帮助。

                                    【讨论】:

                                      【解决方案25】:

                                      我也遇到了同样的错误。 下面是我的情况。

                                      我有 master 分支,设置为原点。

                                      另一边我有发布分支“Release_branch”。

                                      我必须从 Release 分支中分出我的功能分支(即特性/testBranch)。

                                      以下是我执行的步骤。

                                      $ git checkout Release_branch
                                      $ git pull
                                      $ git checkout feature/testBranch
                                      $ git commit -m "SOME_MESSAGE"
                                      $ git push -u origin feature/testBranch
                                      

                                      【讨论】:

                                        【解决方案26】:

                                        在尝试 git push origin master 时,我在使用新存储库时遇到此错误 (error: src refspec master does not match any),因为 GitHub 将主分支的默认名称更改为 main

                                        所以,git push origin main 正在为我工​​作。

                                        【讨论】:

                                          【解决方案27】:

                                          我已经提交了更改并添加了所有文件,与远程文件具有相同的来源,但仍然不断收到该错误。我对此的简单解决方案是:

                                          git push
                                          

                                          【讨论】:

                                            猜你喜欢
                                            • 2023-01-30
                                            • 2012-05-21
                                            • 2011-08-13
                                            • 2017-03-05
                                            • 2018-01-28
                                            • 2013-03-28
                                            • 2022-12-06
                                            • 2022-07-14
                                            相关资源
                                            最近更新 更多