Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:两个特性分支的测试组合_Git_Branching Strategy - Fatal编程技术网

Git:两个特性分支的测试组合

Git:两个特性分支的测试组合,git,branching-strategy,Git,Branching Strategy,我对每个特性都有一个Git分支。然而,有时,在分支A中开发时,我想测试如果B也被应用,A将如何工作 目前,我使用的是: git checkout A git branch base git merge B git reset --mixed base git branch -D base 有没有较短的方法可以做到这一点 另外:如果A和B不共享同一祖先怎么办 o -- o -- o [A] \-- x -- o [v1_0] \ -- b1 -- b2 -- o [B]

我对每个特性都有一个Git分支。然而,有时,在分支
A
中开发时,我想测试如果
B
也被应用,
A
将如何工作

目前,我使用的是:

git checkout A
git branch base
git merge B
git reset --mixed base
git branch -D base
有没有较短的方法可以做到这一点

另外:如果
A
B
不共享同一祖先怎么办

o -- o -- o [A]
 \-- x -- o [v1_0]
           \ -- b1 -- b2 -- o [B]
我怎么能更容易地做这样的事情呢

git checkout A
git branch ABase
git cherry-pick v1_0..B   // only applying b1,b2 not x
git reset --mixed ABase
git branch -D ABase
一种可能性:

$git checkout$(git版本解析A)
$git合并B
$git checkout-#让您回到以前的任何地方
这将检出基础修订(使您处于分离的头部状态)并从中进行更改。这种方法的好处是不再需要创建和删除分支。这不会使工作流变得更短,但您应该能够将其封装在函数中,接受一些参数,然后重用它


至于您的第二个问题:您应该能够使用来确定公共祖先,并使用它来合并或cherry-pick提交(回想一下有一个函数可以为您完成这项工作)。

git merge v1\u 0..B
?你的意思是不是改为“git cherry pick v1_0..B?@Jubobs:是的,我会把它改为cherry pick。之后我也重置为A