我使用git开发工作流程,其中有一个master
分支和多个分支,用于错误修复或功能开发。我发现自己处于这样一种情况,我需要测试其中两个未合并的分支是否可以很好地协同工作,然后再将其中任何一个合并为master。为此,我创建了一个test
分支。因此分支是:
master
featureA
featureB
test
创建test
分支的位置
git checkout -b test master
git merge featureA
git merge featureB
test
分支将永远不会被合并;它仅包含featureA
或featureB
中的提交。将featureA
和featureB
合并后,可以安全地删除test
分支。
根据测试,我对featureA
或featureB
或两者进行了更改,然后将它们再次合并到test
中。
问题是:我最终在featureA
和featureB
上进行了大量提交。通常,在单个分支上工作时,我会在提交前测试代码,或者经常使用git commit --amend
。但是,如果我在git commit --amend
上进行featureA
,然后在git merge featureA
上进行test
,则会发生合并冲突。如果我不提交对featureA
的更改,则无法将分支切换到test
,也无法合并更改。
有没有一种方法可以对featureA
和featureB
分支的功能进行组合测试,而无需每次我对其中任何一个微小的更改都创建新的提交,例如通过合并修订的提交,“难以将test
和featureA
合并的状态的复位分支featureB
”或以其他方式?我知道当我终于满意时可以进行大量的壁球比赛,但是还有其他方法可以不重写历史记录吗?