gpt4 book ai didi

git 删除分支而不删除提交

转载 作者:太空狗 更新时间:2023-10-29 13:48:15 26 4
gpt4 key购买 nike

我通常使用两个分支:master 和 homepage_buildout。我最近被告知要检查在我从事该项目之前的旧提交。我只是做了:

 git checkout [commit number]

然后我决定让这个旧提交像这样成为一个分支:

 git checkout -b old_homepage

现在,我意识到我不再需要能够引用分支 old_homepage,但我仍然希望它作为提交存在。如何保留这些提交但在我键入时删除分支:

 git branch

最佳答案

认为您实际上要问的是:“如果我执行 git branch -d old_homepage 提交会丢失”,答案是: “删除名称只会删除名称;只要您可以在 git log --all 中看到它们,提交本身就会一直存在,实际上甚至更长。”

为了更好地可视化这一点,运行类似 gitk --allgitk --tags 的东西(在一些复杂的 git repos 上尝试两者)。滚动浏览提交。现在想象一下在任何提交上贴上便利贴。那是一个“标签”或“分支”名称。把便利贴拿下来。 Commit 还在,对吧? :-)

这留下了一个明显的问题:什么时候像提交这样的事情实际上消失了?答案是:只有在您删除所有 通向它们的名称之后。 gitk 命令(与大多数其他 git 命令一样)以名称 HEAD 开头。如果你给它 --all 它会添加它能找到的所有分支名称。如果你给它 --tags 它会添加它能找到的所有标签名称。然后它向后工作,查看每个提交以查看它引用的其他提交。

当无法通过从这些明显的名称之一开始并向后工作来找到它们时,Git 会删除它们(提交等)。 (即便如此,它也会等待很长时间,默认情况下为 30 到 90 天。)因此,如果您将分支或标记标签添加到您通过执行 git log 找到其编号的旧提交,例如,为该提交编号提供一个新的明显名称;但再次删除它是安全的,只要它不是按名称查找它的唯一方法。

关于git 删除分支而不删除提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9932044/

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