【发布时间】:2022-01-22 05:20:07
【问题描述】:
在我们的本地 Bitbucket 实例上,我可以通过压缩功能分支的所有更改(通过 Git rebase)将功能分支“合并”到我们的主分支中。这样做时,提交消息包含所有压缩提交的 Git 提交 ID/哈希。此提交附加到主分支,功能分支将被删除。
我曾怀疑在删除功能分支时旧的提交也会被删除,但似乎并非如此。由于主分支上的提交消息包含所有压缩提交的提交 ID,因此我可以通过 URL 访问 Bitbucket 中的每一个旧提交。但是,由于提交不再属于分支,我无法从 UI 中找到提交 - 无论是在 Bitbucket 中还是从任何其他 Git 客户端 UI。
因此,现在来自功能分支的压缩提交只是“隐藏”的,但它们仍然存在于 Git 存储库中。
现在我的(相当学术的)问题:
- 总是这样吗?即使之前关联的分支已被删除,Git 是否始终保留压缩的提交?
- 是否有任何方法可以提取以前压缩提交的提交 ID,即使“旧”提交 ID 不会成为压缩提交消息的一部分?
- 是否可以“硬删除”旧的提交?
提前致谢!
【问题讨论】: