我在Git中有以下历史:
(master) A - B - C
\
(dev) D - E - F - G - H - I
我想创建这样的东西:
(master) A - B - C
| \
(patch_1) |- E' - G' (G' shouldn't contain the changes happened at F commit)
(patch_2) |- D' - F' (F' shouldn't contain the changes happened at E commit)
(dev) |- D - E - F - G - H - I
是否可以创建这样的东西?
如果不可能,从以下选项中可以做得更好:
1.从头开始重写代码?
2.将所有这些提交压缩成一个“好”和大提交消息?
答案 0 :(得分:0)
我能想到的一个可能的解决方案是使用git cherry-pick。
更改为dev分支,获取E,G,D和F的SHA-1提交(使用git log --oneline)。
从master分支创建patch_1分支并发出git cherry-pick命令,其中包含E,G的SHA-1(作为参数)。
从master分支创建patch_2分支并发出带有D,F的SHA-1的git cherry-pick命令(作为参数)。