gpt4 book ai didi

git - merge 后删除分支时留下提交

转载 作者:太空狗 更新时间:2023-10-29 14:29:53 32 4
gpt4 key购买 nike

考虑以下 merge :

merged code

删除“testmerge”分支后,它的提交仍然存在。

deleted branch

这些提交是否会被删除(垃圾收集)?远程修剪似乎没有删除它们......

最佳答案

您的问题很可能源于对 Git 工作方式的误解。

在 Git 中,分支只是指向提交的指针。删除分支可能会导致提交无法访问(在这种情况下,它们不会出现在您的 GitHub 图上),但前提是相关提交包含在任何分支的祖先中其他现有引用(分支或标签)。此外,提交对象的垃圾收集/修剪仅适用于那些无法访问的对象。

在这种情况下,根据您的屏幕截图,repo 如下所示(在删除 testmerge 之前):

-- A ----------- E [development]
\ /
B -- C -- D [testmerge]

请注意,提交 BCD 尤其可以从 testmerge 访问;换句话说,它们包含在分支 testmerge(提交 D)顶端的 ancestry 中。但是,它们也是分支 development(提交 E)尖端的祖先。因为这三个提交可以从 development 访问,删除 testmerge 不会让它们“消失”:

-- A ----------- E [development]
\ /
B -- C -- D

而且因为这些提交仍然可以访问(从 development),运行 Git 的垃圾收集机制不会影响它们。

关于git - merge 后删除分支时留下提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28698229/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com