git将NOT当前分支推送到远程

时间:2013-03-29 08:18:01

标签: git git-push

git 存储库中有没有办法推送现在不在HEAD中的分支?

例如,我有两个分支:

$ git branch
* master
  another

我有两个遥控器:originanother

我需要能够在一个命令中从another推送到another/another而无需更改HEAD。

2 个答案:

答案 0 :(得分:32)

所有这些"另一个"另一个"在最初的问题中,答案和许多评论都是如此令人困惑(这是为什么一开始就把事情命名为正确的重要原因的一个完美例子),我无法帮助(惩罚不打算)写下另一个答案如下。

问:在git(裸)存储库中是否有办法在HEAD中推送的分支?例如,我有两个分支和两个遥控器。我需要能够在一个命令中从feature推送到upstream/feature而无需更改HEAD。

$ git branch
* master
  feature
$ git remote
origin
upstream

答:这样做。

$ git push upstream feature

问:这是否意味着它会将本地feature推送到upstream/feature?我一直以为它会将当前的HEAD推到upstream/feature

答:是的。 feature部分是 refspec ,通常具有src:dst形式。这意味着将本地分支src推送到远程分支dst。如果省略:dst,则将本地分支src推送到远程分支src。您也可以将其他名称指定为远程分支。只是做:

$ git push upstream feature:cool_new_feature

(感谢@ gabriele-petronella和@alexkey提供此答案的材料。)

答案 1 :(得分:23)

使用git push,您可以指定远程和本地

git push remotename branchname