代码之家  ›  专栏  ›  技术社区  ›  JBentley

删除包含提交的分支

  •  2
  • JBentley  · 技术社区  · 11 年前

    我创建了一个分支,当时我正在尝试解决一个没有解决的问题,所以我想删除这个分支,包括我对它所做的所有提交。为了便于讨论,我的分支看起来是这样的(用Gitk查看时):

    A--B--C--D Master
        \
         \-E-F Unwanted
    

    我希望它看起来像这样:

    A--B--C--D Master
    

    如果我删除了不需要的分支,我最终会得到这样的结果:

    A--B--C--D Master
        \
         \-E-F
    

    我不需要提交E和F,也不希望它们扰乱我的Git历史。

    为一个看起来很简单(可能很愚蠢)的问题道歉,但我一直无法在其他地方找到合适的答案。

    2 回复  |  直到 11 年前
        1
  •  5
  •   Ryan Stewart    11 年前

    不,这就是你要做的。只要E和F在任何分支或标记中都没有被引用,它们最终就会被垃圾收集。我想你在gitk中看到了它,仍然可以看到提交挂起。如果您重新启动gitk或使用Ctrl+F5强制重新加载,它们将消失。他们仍然在那里,但git最终会照顾他们的。虽然你可以强迫他们立即清理,但这不是一个好习惯。孤立提交的默认生存时间为2周,因为 有时 你真的 想要这些提交,而你只是还不知道,所以让它们成为孤儿,继续前进。

        2
  •  3
  •   Ben Jackson    11 年前

    如果你跑步 git gc 它将删除未引用的分支( F 是的,假设您没有标记它或从中派生其他分支),当它们超过某个阈值时(默认为2周,您可以使用进行调整 --prune=<date> ).