在documentation for git's merge
command中,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
确实会出现这种情况,如果是这样,我该如何预防呢? E.g:
D---E---F---G---A---B---C master
答案 0 :(得分:9)
没有。一切都会在那里。
删除主题分支之前:
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会因重新定位而丢失。