git裸存储库中是否有办法推送当前不在 HEAD 中的分支?
例如我有两个分支:
$ git branch
* master
another
我有两个遥控器:origin
和another
。
我需要能够在不更改 HEAD 的情况下仅在一个命令中another
推送。another/another
原始问题中的所有“另一个”,答案和大量评论都令人困惑(这是一个完美的例子,说明为什么首先要正确命名你的东西很重要),我忍不住帮忙(双关语不打算)写下另一个答案,如下所示。
问:在 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 feature
to upstream/feature
? 我一直认为它会将当前的 HEAD 推到upstream/feature
.
答:是的。该feature
部分是一个refspec,其形式为src:dst
. 这意味着将本地分支推src
送到远程分支dst
。如果:dst
省略,则将本地分支src
推送到远程分支src
。您也可以指定不同的名称作为远程分支。做就是了:
$ git push upstream feature:cool_new_feature
(感谢@gabriele-petronella 和@alexkey 为这个答案提供材料。)
git push
您可以指定远程和本地
git push remotename branchname