ura*_*nix 6 squash gitlab merge-request
在我们使用 GitLab 的开发中,当功能分支合并到主分支中时,我们通常会压缩它们的提交(如果重要的话,我们使用变基策略而不是合并)。
但是,如果来自功能分支的提交被压缩为单个提交(稍后合并到主分支中)并且分支本身被删除,GitLab 如何仍然显示原始提交?它们是永远保留在存储库中还是最终被删除只是时间问题?
我相信 GitLab 在存储库上做了一些垃圾收集,但我想知道为什么它不影响 MR 的提交。
挤压和合并提交页面确实提到:
\n\n\n每次分支合并到基础分支时,最多会添加两次提交:
\n\n
\n- 通过压缩分支中的提交而创建的单个提交。
\n- 合并提交,除非您在项目中启用了快进合并。
\n
\n快进合并禁用合并提交
合并提交很可能在压缩之前保留对分支的引用,这可以解释为什么原始提交仍然可见。
\n如果情况并非如此,意味着没有任何内容实际引用这些提交,那么内务管理(此处针对自我管理的 GitLab 进行了描述,但在云产品上也很活跃)最终会将它们从存储库中删除。
\n但是:
\n\n\n
\n- Gitaly 永远无法从对象池中删除无法访问的对象,因为它们可能被任何连接到它的分叉使用。
\n- 由于同样的原因,Gitaly 必须保持所有对象均可访问。因此,对象池维护对无法访问的 \xe2\x80\x9cdangling\xe2\x80\x9d 对象的引用,以便它们\xe2\x80\x99不会被删除。
\n
| 归档时间: |
|
| 查看次数: |
622 次 |
| 最近记录: |