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

Ale*_*kiy 28 git git-push

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

例如,我有两个分支:

$ git branch
* master
  another
Run Code Online (Sandbox Code Playgroud)

我有两个遥控器设置:originanother.

我需要能够在不改变HEAD的情况下从一个命令推another送到another/another一个命令.

Ray*_*Luo 36

原始问题中的所有那些"另一个",答案和许多评论都是如此令人困惑(这是一个完美的例子,说明为什么一开始就把你的事情命名为正确),我不禁帮助(双关语)不打算)写下另一个答案如下.

问:git(裸)存储库中有没有办法推送一个现在不在 HEAD中的分支?例如,我有两个分支和两个遥控器.我需要能够在不改变HEAD的情况下从一个命令推feature送到upstream/feature一个命令.

$ git branch
* master
  feature
$ git remote
origin
upstream
Run Code Online (Sandbox Code Playgroud)

答:这样做.

$ git push upstream feature
Run Code Online (Sandbox Code Playgroud)

问:这是否意味着,这将推动国内featureupstream/feature?我一直以为它会推动当前的HEAD upstream/feature.

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

$ git push upstream feature:cool_new_feature
Run Code Online (Sandbox Code Playgroud)

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


Gab*_*lla 25

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

git push remotename branchname
Run Code Online (Sandbox Code Playgroud)

  • 是.(第二个)`another`是一个refspec,它(通常)的形式为`src:dst`.这意味着将本地分支`src`推送到远程分支`dst`.如果省略`:dst`,则将本地分支`src`推送到远程分支`src`. (4认同)
  • 事实上,`git push another another`完全等同于`git push another another:another`.不过,我觉得我无法忍受另一个"另一个". (3认同)
  • 不适合我,但那是因为git是由讨厌文档的人写的. (2认同)