将主分支旋转到功能分支

时间:2011-12-28 11:41:11

标签: git

目前我有以下分支

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

我想做的是

  • 将我的主分支移动到分支功能-1
  • 从现有母版复制新的主分支,然后进行更改

所以最后,我的本地和远程都有2个分支 - master& feature-1,当我从本地主分支推送时,将更新远程主分支。当我推入功能1分支时,远程功能1也将更新。

2 个答案:

答案 0 :(得分:2)

您无需“复制”当前的master分支,只需在当前主分机的顶部创建一个feature-1分支,然后将其推送到原点。

git checkout master
git checkout -b feature-1
git push -u origin feature-1 # only needed once

注意第一次推送feature-1分支的-u选项。您不需要git set-upstream将本地分支链接到原始名称相同的远程分支 有关详情,请参阅“Git: Why do I need to do --set-upstream all the time?”。

答案 1 :(得分:1)

您需要做的就是

git checkout -b feature-1 master
git push -u origin feature-1

Git会在您下次发出git push时自动推送功能-1。你所在的分支并不重要。当您发出git push命令时,git会将您之前明确推送的任何分支推送到第一个远程 - 但只有您已明确推送到该远程的分支。如果您有多个遥控器,则可以指定git push origingit push upstream。如果您明确只想将一个分支推送到远程,则需要git push origin branch-name

使用最新版本的git更隐式地处理跟踪(当git push时,在远程处更新哪个分支)。

对于开源,通常有人可能有2个遥控器:

  1. 他们自己的专业分队的遥控器。
  2. 第二个只读的遥控器,无法推送到该项目的主要仓库。
  3. 这是您希望在某些时候明确指出您所指的回购的地方。