GitHub垃圾收集拉取请求中引用的悬空提交吗?

dav*_*ers 23 git branch github

以下情况不时出现......

git checkout -b experiment,提交一些实验性更改,并打开拉取请求.经过一番讨论后,拉取请求被拒绝.

如果我现在要删除远程分支,这会在某些时候渲染差异不可访问,或者GitHub是否确保拉出请求中出现的提交不会被垃圾收集,即使它们没有出现在任何分支上?

我想删除死分支,但只有这样做不会减少被拒绝的拉取请求的历史价值.

Nev*_*nel 26

不,他们不会是gc的,因为即使你删除你的分支,它们也不是完全没有引用的.

Github为每个拉取请求创建一个分支(实际上是两个).它们位于非默认命名空间中,因此当您从repo中提取(或获取)时,通常不会获取它们.

要查看它在实践中的外观,请执行a git ls-remote <REMOTE>,其中<REMOTE>是远程的名称(如果它是您的repo知道的那个)或URL(不需要git remote add编辑它以使其工作).这个遥控器应该有一些拉动请求,否则你将无法看到我的意思.

这将列出远程(所有分支和标签)上的所有引用,您将看到一些类似refs/pull/<number>/head和的引用refs/pull/<number>/merge.这些分别引用PR中的最新提交和它合并的提交.

  • @JorgeOrpinel 它有记录在https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/removing-sensitive-data-from-a- “您无法对存储库的现有克隆或分支执行任何操作,但您可以通过联系 GitHub 支持或 GitHub 高级支持来永久删除 GitHub 上拉取请求中的缓存视图和敏感数据引用。” (必须要求支持人员这样做意味着它不会像在默认本地 git 安装中那样通过典型的垃圾收集自动发生) (2认同)