我在git中有一个分支,可以干净地应用到master。它包含一个提交,其中包含10个可以完全应用于master的功能。但我想将更改合并为主要功能。功能更改不在文件级别(因此一个更改文件可能包含2-3个功能的更改,但它们可以很容易地分开)。但是,对整个文件内容的任何合并策略都失败了,它更像是来自文件1的合并行10-20和来自文件的行70-80以及来自文件3的行100用于一个特征。
有什么样的编辑器吗?- >最终它将是一个分支上的一个大型提交"在master上转换为10个提交,按功能转换
是否有任何工具(链)可以直观地支持这样的工作流程?
答案 0 :(得分:2)
鉴于您要将零碎合并到master
中的工作是在非master
all-in-one
分支的一次提交中,我建议您分解{{首先提交,然后将一个较小的提交一次合并到all-in-one
。这样,与在补丁中合并相反,您的Git历史记录将能够跟踪更改的来源。
有多种方法可以实现这一目标。一种方法是从与master
分支相同的起点创建piecemeal
的{{1}}分支,将master
合并到all-in-one
分支中提交,取消暂存任何分阶段的更改,然后开始将未分段的工作分解为all-in-one
上的较小提交。
要通过视觉帮助将未分段的工作分成多个提交,piecemeal
允许您暂存(或不分段)每个当前未分级的' hunk'代码到控制台中的Git索引。
piecemeal
提供了一种图形化方式:选择未分段文件,右键单击文件部分,单击git add --patch .
。有关逐级图片和更多详细信息,请参阅http://www.adamfranco.com/2009/01/13/git-tip-of-the-day-stage-hunks/。
答案 1 :(得分:0)
假设分支类似于-A-B
,并且您希望将B拆分为多个提交。
git reset A
git add some_file -p
git commit
git add some_file -p
git commit
...
参考:git-add看看EDITING PATCHES部分,试试看