2016-11-23 220 views
2

一个TFS迁移(完全不同的分支概念)我要合并修复了多个版本的分支,但分支机构不相同后,他们大多是相似的,但不同的产品(例如不同的品牌,连接字符串等),所以我不能在这里使用nvie gitflow的一种产品分支策略。如何合并一个Git分支到多个版本分支

enter image description here

https://github.com/MrKekson/stackoverflow_question/network

在这里你可以找到一个大大简化了分支结构,基本上我要合并B1的hotfix1分支,以tesztb3,但没有对B1先前提交(C3,C4 )。

采樱桃谬误或底垫可以帮助,但我没有设法把它做了,我没有很多的先进的git的使用体验呢。所以请告诉我如何做到这一点,或者我应该改变什么来完成它。

+1

你还应该提到你已经尝试了什么。 Cherrypicking很可能是你想要的,但是你应该说明你试过的挑选和重新命名命令,以及为什么它们没有产生预期的结果。 – Vampire

回答

0

好吧,我解决了这个问题。至少有几个方法可以做到这一点:

所以基本上,可以摘樱桃每对hotfix1到teszt3单独的提交,但它的笨拙。

所以我们可以从b1创建一个合并分支,将hotfix1合并到它,然后樱桃选择由合并创建的提交到tesztb3,什么会在testb3上产生一个新的提交。 甚至可以-x添加到摘樱桃,所以ITT将在新创建的说明提交,GUID为它的父母,或者我们能够压制我们的hotfix1支进1提交,然后樱桃挑选。

或者,我们可以创建基于上次提交(HF)的衍合分支,然后

git rebase --onto <new-parent> <old-parent> <lastcommit> 

--onto explained here,但<new-parent>是我们的目标分支teszt3,我更喜欢创建此合并的分支目标分支,父亲是hotfix1的开始,在这种情况下,lastcommit是hotfix1上的hf2。 然后将teszt3合并到我们的新合并分支中,并创建一个返回到teszt3的请求。

因此,我认为没有路径是容易在第一次看,但可行带着几分经验和事件,这是一个办法流畅的体验,然后重命名在tfsvc目录。

相关问题