使用git,如果我合并一个分支然后删除该分支,那么个别提交会丢失吗?

时间:2012-10-24 21:25:43

标签: git

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

1 个答案:

答案 0 :(得分:9)

没有。一切都会在那里。

删除主题分支之前

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

删除主题分支后

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

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

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

脚注:您可以使用主题分支中的git rebase master,然后将主节点快速转发到主题并删除主题来获取以下历史记录。

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

请注意,虽然可能,但它可能不是理想的 - 原始提交A,B和C会因重新定位而丢失。

相关问题