错误:src refspec my-branch与any不匹配

时间:2017-02-04 05:05:17

标签: git

我从主分支创建了一个功能分支,并添加并向我的分支提交了一些更改。

现在我想将我的工作推送到远程存储库,但它失败了。我该怎么做才能解决问题?感谢。

运行git push命令时,它没有询问我的密码。这是正常的吗?

P.S。我正在使用Windows 10的cmd。

> git push origin my-branch
error: src refspec my-branch does not match any.
error: failed to push some refs to 'https://git.xxx.net/Infrastructure'


>git commit -m "my work"
On branch my-branch
nothing to commit, working tree clean

>git branch
  master
* my-branch

>git show-ref
687f22d54b89e0de91f16cf79d52c6ea21a3f562 refs/heads/master
f85d2aa0900fb356d8d120f454ff2362d7475edb refs/heads/my-branch
687f22d54b89e0de91f16cf79d52c6ea21a3f562 refs/remotes/origin/HEAD
687f22d54b89e0de91f16cf79d52c6ea21a3f562 refs/remotes/origin/master


>git log
commit f85d2aa0900fb356d8d120f454ff2362d7475edb
Author: tim <tim@xxx.com>
Date:   Fri Feb 3 23:50:43 2017 -0500

    my work

commit 687f22d54b89e0de91f16cf79d52c6ea21a3f562
Author: Kevin <kevin@xxx.com>
Date:   Thu Jan 19 12:26:26 2017 -0500

    Added gitignore

2 个答案:

答案 0 :(得分:2)

默认情况下,push policy is simple (since Git 2.0) 这意味着Git会尝试推送到以本地命名的远程分支。

如果您没有该名称的任何远程分支,则需要明确声明您要创建并推送所述远程分支。
请参阅“Why do I need to explicitly push a new branch?

  

你当地的第一次推动不知道:

     
      
  • 在哪里推
  •   
  • 要推送什么(因为它找不到任何上游分支被记录为远程跟踪分支和/或具有相同的名称)
  •   

通过添加git push -u origin my-branch,您将与您的本地分支关联远程(branch.<name>.remote)和目标(origin/mybranchbranch.<name>.merge

下一次推送将是一个简单的git push

答案 1 :(得分:1)

试试这个:

  $ git push origin HEAD:my-branch
  Or,
  $ git push -u origin my-branch 
  

git push origin HEAD:my-branch 将当前分支推送到与原始存储库中的my-branch匹配的远程ref。此表单便于推送current branch without thinking about its local name

Vs的

  

git push origin my-branch 在源存储库中找到与my-branch匹配的引用(很可能,它会找到refs / heads / my-branch),并更新相同的引用(与它相关的原始存储库中的refs / heads / my-branch)。如果my-branch不存在远程,则会创建它。