如何清理提交树中未使用的侧分支?

2024-04-23

如何清理提交树中未使用的侧分支(不是真正的 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?


tarsius https://stackoverflow.com/users/51019/tarsius wrote 在另一个问题的回答中 https://stackoverflow.com/a/4528593/131120:

git reflog expire --expire=now --all
git gc --prune=now

它会清除引用日志,然后清理存储库。一开始清理引用日志并不总是有效,因为由引用日志标记的有意义的提交通过以下方式保持活动状态:git-gc只要 reflog 没有过期(默认为 90 天)。

据我了解,完成此操作后,所有悬空提交都真正消失了。因此,人们应该确定自己真的不再需要所有这些了。如果确实想保留一些悬空提交,可以:

git checkout <dangling_commit_id>
git branch <new_branch_name_of_your_choice>

or use git 格式补丁 http://git-scm.com/docs/git-format-patch将整个提交存储在文本文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何清理提交树中未使用的侧分支? 的相关文章

随机推荐