有没有办法在git 裸存储库来推送一个不在HEAD中的分支?git push NOT当前分支到远程
,比如我有两个分支:
$ git branch
* master
another
而且我有两个遥控器设置:origin
和another
。
我需要能够从another
推到another/another
只需一个命令而不改变HEAD。
有没有办法在git 裸存储库来推送一个不在HEAD中的分支?git push NOT当前分支到远程
,比如我有两个分支:
$ git branch
* master
another
而且我有两个遥控器设置:origin
和another
。
我需要能够从another
推到another/another
只需一个命令而不改变HEAD。
随着git push
您可以指定远程和本地
git push another another
这是否意味着它会将本地另一个推向另一个?我一直认为它会将'当前HEAD'推到另一个。 – AlexKey
是的。 (第二个)'another'是一个refspec,它(通常)的格式为src:dst。这意味着将本地分支'src'推送到远程分支'dst'。如果':dst'被省略,本地分支'src'被推送到远程分支'src'。 –
当前的HEAD只是默认设置,但是您可以指定任何分支(或更通常的任何refspec),正如Lars指出的那样 –
所有这些“另一个另一”在原来的问题,答案和大量的意见是如此混乱(这也是它一个很好的例子重要的是要首先命名你的东西),我不禁帮助(不打算用双关语)写下如下的答案。
问:git(裸)存储库是否有办法在HEAD中将而不是的分支推入?例如,我有两个分支和两个遥控器。我需要能够从feature
推到upstream/feature
只需一个命令而不改变HEAD。
$ git branch
* master
feature
$ git remote
origin
upstream
答:这样做。
$ git push upstream feature
问:这是否意味着,这将推动当地feature
到upstream/feature
?我一直认为它会将当前HEAD推到upstream/feature
。 A:是的。 feature
部分是refspec,其通常具有src:dst
的形式。这意味着将本地分支src
推送到远程分支dst
。如果省略:dst
,则将本地分支src
推送到远程分支src
。您也可以指定一个不同的名称作为远程分支。只要做到:
$ git push upstream feature:cool_new_feature
(感谢@加布里埃莱 - petronella和@alexkey为这个答案提供的材料。)
请注意,“上游”只是特定远程的别名。赔率是,如果你一直在线上遵循最典型的约定(即,你复制粘贴很多),它实际上是“起源”。请参阅:https://stackoverflow.com/questions/9529497/what-is-origin-in-git – Kat
@Kat:虽然'上游'和'起源'是“只是”一个特定的远程别名,他们有不同的按照[github fork工作流]的惯例(https://help.github.com/articles/configuring-a-remote-for-a-fork/)来表示。不要以为你总是可以在任何git命令中用'origin'替换'upstream',除非你知道你在做什么。 – RayLuo
你可能会考虑没有为远程和分支完全相同的名称。这很混乱。 –
你可以使用'git branch -m another another_branch'或'git remote rename another another_remote' –
@KlasMellbourn,这仅仅是为了举例。当然,我没有这个怪异的命名。 – AlexKey