如何确保悬空提交不会被 Gitlab 收集为垃圾?

问题描述 投票:0回答:1

我使用 gitlab 托管的存储库,但我希望我的问题比这更普遍。假设我有一个问题 #N,并且我在一个功能分支 feature-N 上工作并进行了 10 次提交。在每个提交中,我在提交消息中标记问题#N,以便将来如果我查看该问题,我可以轻松链接到任何提交。然后,我将 feature-N 分支合并到 main 中,并使用 squash-commits 选项来保持 git 历史记录更清晰。

我知道,如果我选择不删除 Remote/feature-N 分支,那么总会有一个对这 10 个提交的分支引用,并且我仍然能够访问它们。我所说的“访问”是指我可以转到问题页面,查看指向 10 个提交 ID 的超链接,这些链接将是有效链接。

但是,假设我确实想删除 Remote/feature-N 分支以保持干净。根据我所读到的内容,这 10 个提交现在未被引用,这意味着每当 gitlab 决定在远程存储库上执行垃圾收集时,它们都会受到垃圾收集的影响。这是否意味着在一段时间后,“问题”页面中的超链接将被破坏,因为这些提交不再存在?或者 GitLab 是否在幕后做一些事情来维护对这些提交的引用,以防止垃圾收集删除它们。

到目前为止,我已经完成了上述场景,并删除了远程分支。问题页面上指向悬空提交的链接仍然有效,我的猜测是这是因为垃圾收集尚未发生。由于我无法在远程强制进行垃圾收集,所以现在我所能做的就是等待,看看是否有一天这些链接会被破坏。我想我应该在这里问这个问题以获得一些清晰的信息,而不是等待,这样我就可以决定最佳实践是否是在合并后删除远程分支。

git gitlab git-gc
1个回答
0
投票

我使用了 squash-commits 选项来保持 git 历史记录更清晰

如果您不想查看合并的历史记录,只想查看结果,请在日志显示上使用

-m --first-parent
-m
是一个很好的补充,因此当您要求查看补丁时,您不会忘记)。如果 GitLab 的 Web ui 没有提供这个选项(我看到一个开放的问题要求它),那是他们的事,Git 会很好地为你做这件事,它的构建是为了帮助你了解什么对你当前的目的是重要的不会丢失对其他用途可能重要的细节。

© www.soinside.com 2019 - 2024. All rights reserved.