我怎样才能获得git branch历史记录以便在压制壁球后匹配主人?

时间:2012-10-19 19:22:37

标签: git rebase squash

假设我有以下树结构:

A-B-C-D
    |\E-F (branch one)
     \G-H (branch two)

Master history: A-B-C-D
Branch one history: A-B-C-E-F
Branch two history: A-B-C-G-H

我想压缩提交B,所以相应的历史应该是这样的:

A-C-D
A-C-E-F
A-C-G-H

我发现,在我压缩大师之后,当我结帐一两个分支时,他们仍然会在我运行git log时显示旧的历史记录。 git是否在分支时复制树?我是否需要单独修改每个分支?

谢谢

1 个答案:

答案 0 :(得分:3)

是的,您需要单独重新分配每个分支。删除提交B后,您将获得

Master history: A-C'-D'
Branch one history: A-B-C-E-F
Branch two history: A-B-C-G-H

其中C'和D'类似于C和D,除了B从历史中删除。第一和第二分支不受主rebase的影响。结果的另一种观点是:

A-C'-D'
|\B-C-E-F (branch one)
 \B-C-G-H (branch two)

其中A,而不是C,现在是所有分支中最接近的共同祖先。