错误:src refspec master与any不匹配

时间:2014-01-21 17:13:06

标签: git git-push git-remote

我试图按照this帖子中建议的解决方案但是它没有用,我仍然得到:src refspec master与之匹配。

这是我做的: 遵循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但不知道如何创建它。

由于

24 个答案:

答案 0 :(得分:47)

这应该可以帮到你

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

答案 1 :(得分:26)

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

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

此后,如果您仍然遇到该错误,请再次按照以下步骤操作

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

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

答案 2 :(得分:22)

git branch看来,您的本地分支名称显示为“origin”。

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

git branch -mv origin master

git branch后应显示master: - )

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

答案 3 :(得分:9)

我再次出现相同的错误。

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

&#34; git push origin master&#34;

显示相同的错误

我遗失的所有我都没有承诺。

<强>&#34; git commit -m&#39; message&#39; &#34;

在Runnig之后,它起作用了

答案 4 :(得分:4)

尝试:

git push origin HEAD:master

答案 5 :(得分:4)

只需添加一个空提交即可使用

解决问题
$ git commit -m "empty commit" --allow-empty
$ git push

//以上在不进行编辑的情况下进行空提交,然后按

答案 6 :(得分:2)

一旦我忘记添加文件,这就会发生在我身上。所以我遇到了同样的错误。您所需要做的就是添加文件。

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

答案 7 :(得分:1)

解决方案: 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'.

答案 8 :(得分:0)

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

  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并再次添加它对我来说并不重要。

答案 9 :(得分:0)

确保如果您正在推送 master 分支,请确保您当前在 master 分支中,如果没有检出到 master 分支,现在推送您的提交。要列出所有当前分支,请使用:

git branch 

你当前工作的分支应该在开头有一个星号,例如,如果我正在处理我的

*devstage
master

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

答案 10 :(得分:0)

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

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

答案 11 :(得分:0)

我也遇到了同样的错误。 就我而言,以下是场景。

我有主分支设置为原点。

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

我必须从 Release 分支分叉我的功能分支(i.efeature/testBranch)。

以下是我做的步骤。

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

答案 12 :(得分:0)

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

struct ContentView: View {
    @State var text: String = ""

    var body: some View {
        TextView(text: $text) { // Configuring the text field
            $0.font = UIFont(name: "HelveticaNeue", size: 16)
            $0.isScrollEnabled = true
            $0.isEditable = true
            $0.isUserInteractionEnabled = true
            $0.backgroundColor = UIColor(white: 0.0, alpha: 0.00)
            $0.textColor = UIColor.black
        }

        onCommit: { // Detecting the commit
            print("Committed with text: " + text)
        }

        .onChange(of: text) { value in // The native way to detect changes of a State
            print("text now: " + text)
        }
    }
}

struct TextView: UIViewRepresentable {
    @Binding var text: String

    var configurate: (UITextView) -> ()
    var onCommit: ()->()

    func makeCoordinator() -> Coordinator {
        Coordinator(self)
    }

    func makeUIView(context: Context) -> UITextView {
        let myTextView = UITextView()
        configurate(myTextView) // Forwarding the configuring step
        myTextView.delegate = context.coordinator
        return myTextView
    }

    func updateUIView(_ uiView: UITextView, context: Context) {
        uiView.text = text
    }

    class Coordinator: NSObject, UITextViewDelegate {
        var parent: TextView

        init(_ uiTextView: TextView) {
            self.parent = uiTextView
        }

        func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
            if (text == "\n") {
                textView.resignFirstResponder()
                parent.onCommit() // Execute the passed `onCommit` method here
            }
            return true
        }

        func textViewDidChange(_ textView: UITextView) {
            parent.text = textView.text // Update the actual variable
        }
    }
}

答案 13 :(得分:0)

此错误也是由于不匹配 本地分支名称引起的。 确保输入正确的本地分支名称(检查拼写和区分大小写
我遇到了同样的错误,因为我的本地分支名称为“ 已验证”,并试图使用git push -f origin validate进行更改,并将其更新为git push -f origin validated可用。

希望这会有所帮助。

答案 14 :(得分:0)

FWIW,遇到了相同的错误,但认为它是由于以下事件序列导致的:

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

然后,当尝试将更改从本地推送到远程时,收到错误“ src refspec master不匹配”,或者当尝试推送到dev时,“ src refspec dev不匹配任何”

因为本地克隆中有待处理的更改,所以我不想对其进行爆炸并刷新。  因此,通过将本地分支重命名为dev ...

来解决此问题。

$ git branch -m dev

...之后是git push origin dev的常规推送,这次正常运行而没有引发上述错误。

答案 15 :(得分:0)

这件事发生在我身上,我发现github试图验证我的帐户。 因此您需要以下两个命令:

String [] n = input.replace("or(",":(").split(":");

答案 16 :(得分:0)

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

引起的

git push origin master

当我在开发分支时 尝试:

git push origin branchname

希望这有助于某人

答案 17 :(得分:0)

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

答案 18 :(得分:0)

仅因为您的本地分支不对远程存储库中的分支进行数学运算。 git push origin HEAD:master 无论如何,您都可以忽略冲突并上传提交。

答案 19 :(得分:0)

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

在终端中,键入

vi .git/config

使用

修改网址
url = https://username:password@github.com/username/repo.git

输入:wq以保存

答案 20 :(得分:0)

如果分支名称中有拼写错误,通常会发生此错误。

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

请注意,您没有第二个i字母admin(i)stration,就在分支机构上,这就是为什么git会阻止您推送到另一个分支的行为!

答案 21 :(得分:0)

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

切换分支
git checkout -b "YOURBRANCHNAME"

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

现在您可以在分支上执行操作。

答案 22 :(得分:-1)

错误演示:

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.

答案 23 :(得分:-1)

对我来说,修复似乎是“git”。 (分段所有当前文件)。显然这是在git init之后需要的吗? 我通过“get reset”跟踪它(取消暂存所有文件)并继续执行完全相同的命令以仅暂存几个文件,然后成功推送。

   git . 
   git reset