【问题标题】:I can still checkout any commit in deleted branches, is it permanent?我仍然可以检查已删除分支中的任何提交,它是永久性的吗?
【发布时间】:2018-01-15 13:29:33
【问题描述】:

在我正在处理的一个 repo 中,已创建、处理、合并到 master 并在完成后删除了数十个功能分支。但是,我仍然可以使用git log --graph 看到这些分支中的每一个提交。 通过图中的 SHA,我还可以检查那些已删除分支中的任何提交。

我认为这是一件非常好的事情,但我的问题是,它们是否会在未来某个时候被垃圾收集,或者它们是永久性的?

【问题讨论】:

  • 这些功能分支与合并提交中的另一个父级一样多是历史的一部分。最有可能的是,您肯定希望呈现这段历史。

标签: git


【解决方案1】:

永久:只要可以通过分支或标签访问这些提交,它们就会保持可见。
可访问意味着:您可以通过提交图从标记提交或分支 HEAD 返回到那些较旧的提交:请参阅“Understand Git history ”。

如果它们不可访问,则可通过git reflog 看到它们,并且最终会收集垃圾(gc.reflogExpire 默认为 90 天),或者之前使用 git gc

【讨论】:

  • 所以任何通过git log --graph --all可见的东西都是永久的(除非你重写历史);其他一切最终都会被清理干净。
  • @DanielH 这是一般的想法,是的。
  • 你知道有什么例外吗?我认为这是完全正确的,但可能存在我没有想到的极端情况。
  • @DanielH 我不知道。这就是为什么,如果你删除了一些东西,清理你的 repo (gc) 并推送删除......你仍然需要联系远程服务器支持来请求类似的清理:stackoverflow.com/a/47771133/6309
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 2011-03-18
  • 1970-01-01
  • 2022-10-20
  • 1970-01-01
  • 2015-09-17
  • 2013-05-09
相关资源
最近更新 更多