0



我在 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. 将所有这些提交压缩成一个“漂亮”和大提交信息?

4

1 回答 1

0

我能想到的一种可能的解决方案是使用 git cherry-pick。

  1. 更改为 dev 分支,获取 E、G、D 和 F 的 SHA-1 提交(使用 git log --oneline)。

  2. 从 master 分支创建 patch_1 分支并使用 E、G 的 SHA-1(作为参数)发出 git cherry-pick 命令。

  3. 从 master 分支创建 patch_2 分支并使用 D、F 的 SHA-1(作为参数)发出 git cherry-pick 命令。

于 2013-09-20T09:41:39.073 回答