34

git裸存储库中是否有办法推送当前不在 HEAD 中的分支?

例如我有两个分支:

$ git branch
* master
  another

我有两个遥控器:originanother

我需要能够在不更改 HEAD 的情况下仅在一个命令中another推送。another/another

4

2 回答 2

41

原始问题中的所有“另一个”,答案和大量评论都令人困惑(这是一个完美的例子,说明为什么首先要正确命名你的东西很重要),我忍​​不住帮忙(双关语不打算)写下另一个答案,如下所示。

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

$ git branch
* master
  feature
$ git remote
origin
upstream

答:做git push remote_name branch_name。在上面的例子中,它看起来像这样。

$ git push upstream feature

Q: 是不是会push local featureto upstream/feature? 我一直认为它会将当前的 HEAD 推到upstream/feature.

答:是的。该feature部分是一个refspec,其形式为src:dst. 这意味着将本地分支推src送到远程分支dst。如果:dst省略,则将本地分支src推送到远程分支src。您也可以指定不同的名称作为远程分支。做就是了:

$ git push upstream feature:cool_new_feature

(感谢@gabriele-petronella 和@alexkey 为这个答案提供材料。)

于 2015-09-27T02:56:36.310 回答
30

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

git push remotename branchname
于 2013-03-29T08:20:07.897 回答