2014-07-26 49 views
0

我有一个分支数量的git存储库,每个分支都代表一个功能或修复。我想创建一个新分支,其中包括所有这些分支,用于测试,但我不想更改或删除现有分支,也不想影响主分支。这样做的最好方法是什么?如何将多个分支移植到git中的新测试分支中

所以我有什么实际上是

     -- G -- H [feature1] 
        /
A -- B ---------- C -- D [master] 
    \ -- E [fix1] \ 
       \ -- F [fix2] 

,我想实现

     -- G -- H [feature1] 
        /
A -- B ---------- C -- D [master] - 
    \ -- E [fix1] \     \ 
       \ -- F [fix2]  \ 
             \ -- E -- F -- G -- H [test-them-all] 

我可以克隆回购协议,在克隆合并分支机构,并针对主测试上克隆。这很简单,而且我认为玩分支机构游戏的风险更小,但我很好奇,如果可以在单个回购机制内完成这项工作?

回答

0

从你的图中,我假设你想使用rebase来获得快速合并。 (警告,我没有测试所有这些命令,使用它们作为指导而不是绝对的真理:))

在每个分支的尖端创建第二个分支(这样您就可以在不回滚的情况下进行分割)。

git checkout fix1 
git checkout -b fix1-test 

git checkout fix2 
git checkout -b fix2-test 

git checkout feature1 
git checkout -b feature1-test 

git checkout master 
git checkout -b test-them-all 

调整基线的修复和功能进入测试了他们,所有的分支

git checkout fix1 
git rebase test-them-all 
git checkout test-them-all 
git rebase fix1 

git checkout fix2 
git rebase test-them-all 
git checkout test-them-all 
git rebase fix2 

git checkout feature1 
git rebase test-them-all 
git checkout test-them-all 
git rebase feature1 

然后做测试了他们,所有分支的测试,假设他们通过和你没有任何新提交掌握:

git checkout master 
git rebase test-them-all 

回到原来的状态,而不是删除所有的测试分支

相关问题