在git merge命令的文档中,结果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
不,一切都会在那里.
在删除主题分支之前:
      A---B---C topic
     /         \
D---E---F---G---H master
之后删除特性分支:
      A---B---C
     /         \
D---E---F---G---H master
分支只是提交C的指针.删除它不会消除提交.
请注意,如果尚未合并主题分支,则删除它将失败,除非您使用git branch -D.该git branch -d命令只会删除合并的分支,这会保留所有历史记录,但会删除分支名称.
脚注:您可以通过使用git rebase master主题分支,然后将主数据库快速转发到主题以及删除主题来获取以下历史记录.
D---E---F---G---A'---B'---C' master
请注意,虽然这是可能的,但可能并不理想 - 原始提交A,B和C会因重新定位而丢失.