几个星期前,我分支了我们的开发部门来处理一个故事(Agile term)。最近,我们的发布经理决定让所有与功能相关的分支都成为功能部门的子级。
是否有一种简单的方法来自
develop
|
---> My Branch
|
---> Feature
要:
develop
|
---> Feature
|
---> My Branch
编辑:我没有意识到分支机构实际上没有父/子关系。这跟我的SO帖子中有一半的趋势让我听起来直言不讳。我很欣赏答案;他们帮助我找到了一条好的前进道路。
答案 0 :(得分:1)
如果您需要做任何事情,那么rebase
(正如其他人所建议的那样)可能会做什么。
但是你很有可能不做任何事情。
人们对像#34;父母分支"这样的概念感到困惑,这些概念根本不存在于git中。创建My Branch
时,没有关于您所在分支的记忆。因此,只有提交拓扑实际上是错误的,才需要做任何事情。
假设您从
开始x --- O <--(develop)
你创建了自己的故事分支,也许还做了一些工作。
x --- O <--(develop)
\
A <--(story)
现在,如果您的发布经理还没有决定将故事分支分组到功能分支中,那么您最终会将story
合并回develop
。但是现在你有了一个功能分支,但创建功能分支并没有改变任何有关提交的提交。
x --- O <--(develop)(feature)
\
A <--(story)
事实上,即使功能分支在故事分支之前已经存在,并且您已经检查过并在创建story
时将其用作起点......图片将完全相同。在这种情况下,所有需要发生的事情是,当story
分支完成后,您将其合并到feature
而不是develop
。 (假设--no-ff
,则给出
x --- O <--(develop)
|
|-- M <--(feature)
\ /
A <--(story)
你有&#34;明显&#34;分支层次结构。)
不要说你从不必须修理任何东西。如果在创建develop
和创建story
的位置之间有feature
提交,您可能确实想要重新定义story
以使其与指定的分支点保持一致为feature
。这通常看起来像
rebase --onto feature develop story
(然后,理想情况下,你应该重新测试重写的story
分支上的每一个提交。如果你有自动构建/测试工具,那不应该是一个大问题......并且如果你不这样做,那么你并没有真正做到敏捷......)
前进:创建feature
后,您会希望将其用作其他story
分支的起点(a),以避免意外合并其他develop
feature
提交到story
,以及(b)在将feature
合并到xInner
时减少不必要的合并冲突。
答案 1 :(得分:0)
分支没有子级,但是如果您希望Feature
分支的当前提示的提交是My Branch
的祖先,则应首先签出My Branch
然后将其重新绑定在Feature
分支之上。
git checkout My Branch
git rebase Feature
请注意,如果要保持此关系,则每次Feature
分支移动时都必须再次执行此rebase。也就是说,每当有人提交Feature
分支时,您必须重新运行上述两个命令。