假设我有以下树结构:
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是否在分支时复制树?我是否需要单独修改每个分支?
谢谢
答案 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,现在是所有分支中最接近的共同祖先。