在 git bare 存储库中有没有办法推送一个现在不在 HEAD 中的分支?
例如我有两个分支:
$ git branch
* master
another
我设置了两个 Remote :origin
和 another
。
我需要能够在不更改 HEAD 的情况下仅在一个命令中从 another
推送到 another/another
。
最佳答案
原始问题中的所有那些“另一个另一个”,答案和大量评论是如此令人困惑(这是一个很好的例子,说明为什么一开始就正确命名你的东西很重要),我无能为力帮助(双关语不是故意的)写另一个答案如下。
问:在 git(裸)存储库中有没有办法立即推送 不 在 HEAD 中的分支?例如,我有两个分支和两个 Remote 。我需要能够在不更改 HEAD 的情况下仅在一条命令中从 feature
推送到 upstream/feature
。
$ git branch
* master
feature
$ git remote
origin
upstream
答:执行git push remote_name branch_name。在上面的例子中,它看起来像这样。
$ git push upstream feature
Q:是不是意味着会将本地的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 为这个答案提供 Material 。)
关于git push NOT 当前分支到远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699702/