【发布时间】:2012-08-01 09:21:06
【问题描述】:
您将如何清理提交树中未使用的侧分支(不是真正的 git 分支)?
示例(树、假提交哈希、提交消息、可选 [指针]):
* 0001 last commit [master] [origin/master] [HEAD]
| * 0002 old, unused merge
|/|
* | 0003 some remote commits
* | 0004 another commit from remote
| * 0005 old, unused commits
|/
* 0006 old tree
路径 0001、0003、0004、0006 应该保持不变,但提交 0002 和 0005 没有用,也没有任何好处。如何删除提交 0002 和 0005?
【问题讨论】:
-
git gc可能会有所帮助:kernel.org/pub/software/scm/git/docs/git-gc.html -
不是 100%。标题暗示了这一点,但问题文本实际上更多地讨论了如何理解和输出此类提交的状态。不过,里面有很多很好的建议,可以用来在这里写下这个问题的答案。
-
你真的看过接受的答案(和其他答案)吗? 我怎样才能删除这样的提交?:一旦你的 reflog 条目过期,这些对象也会被
git gc清理。 还有更多关于过期时间的信息,甚至关于如何将所有悬空提交标记为已过期...您还需要什么信息? -
是的。正如我所说的那样,信息可能就在那里,只需要在这里理解和制定这个问题的答案。我现在这样做了,但我无法以这种方式给其他人(比如你!?)提供声誉点数,这让我感到不舒服。
标签: git git-rebase