2

gitmerge命令的文档中,结果git merge topic如下所示:

      A---B---C topic
     /         \
D---E---F---G---H master

在这种情况下,在我看来,如果我要删除topic以保持分支列表整洁,那么所有提交 A、B 和 C 的记录都会丢失,只留下一个提交 H(并且可能会删除所有提交消息来自 A、B 和 C):

D---E---F---G---H master

真的会是这样吗,如果是这样,我将如何防止它?例如:

D---E---F---G---A---B---C master
4

1 回答 1

9

不,一切都会在那里。

删除主题分支之前:

      A---B---C 话题
     / \
D---E---F---G---H 主控

删除主题分支后:

      A---B---C
     / \
D---E---F---G---H 主控

分支只是一个指向提交 C 的指针。删除它并不会摆脱提交。

请注意,如果您尚未合并主题分支,则删除它将失败,除非您使用git branch -D. 该git branch -d命令只会删除合并的分支,它会保留所有历史记录但会删除分支名称。

脚注:你可以通过git rebase master从主题分支中获取以下历史记录,然后将master快进到主题,然后删除主题。

D---E---F---G---A'---B'---C'主

请注意,虽然这是可能的,但它可能是不可取的——原始提交 A、B 和 C 因变基而丢失。

于 2012-10-24T21:30:12.883 回答