我从主分支创建了一个功能分支,并添加并向我的分支提交了一些更改。
现在我想将我的工作推送到远程存储库,但它失败了。我该怎么做才能解决问题?感谢。
运行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
答案 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/mybranch
:branch.<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不存在远程,则会创建它。