【问题标题】:Remove a branch including its commits删除包含其提交的分支
【发布时间】:2013-03-05 01:24:18
【问题描述】:

我创建了一个分支,我在其中尝试了一种无法解决的问题的方法,因此我想删除该分支,包括我在其上所做的所有提交。为了论证,我的分支看起来像这样(用 Gitk 查看时):

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

我希望它看起来像这样:

A--B--C--D Master

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

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

我对提交 E 和 F 没有用处,也不希望它们弄乱我的 Git 历史记录。

对于这个看似非常简单(而且可能很愚蠢)的问题,我深表歉意,但我一直无法在其他地方找到合适的答案。

【问题讨论】:

标签: git gitk


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-10-18
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 2015-02-13
      • 2016-07-20
      • 2020-05-22
      • 1970-01-01
      相关资源
      最近更新 更多