gpt4 book ai didi

git - 如何在 git 中显示标签的完整历史记录?

转载 作者:行者123 更新时间:2023-12-04 12:50:22 27 4
gpt4 key购买 nike

git 中的标签显然可以通过简单地删除它们然后重新标记从一个提交移动到另一个提交。

例如:

git tag -m "Version 1.0" v1.0 abcd123
git push --tags
git tag -d v1.0
git tag -m "Corrected version 1.0" v1.0 1234abc
git push --tags

如何查看特定标签的完整历史记录? (换句话说,任何时候创建/删除具有该名称的标签,以及每个标签指向的提交内容)

如何查看所有标签的完整历史记录?

最佳答案

它们也可以被强制移动:

git tag -f ...

然后用力 push 。

How do I see the entire history of a particular tag? (In other words, any time a tag with than name was created/deleted, and what commits each one pointed to)



一般来说,你不能。

如果标签被强制移动和强制推送,并且您保留标签的引用日志,则可以从标签的引用日志中检索以前的值,直到这些引用日志条目过期。但是,删除引用(任何引用)会删除引用日志。

带注释的标签使用存储库中的对象(除了引用本身)。删除引用只会删除对带注释的标记对象的外部标记名引用。只要底层对象本身没有被移除,就可以通过ID访问它。但是,作为未引用的对象,它受通常的垃圾收集规则的约束。只有当一些额外的引用(通常是另一个带注释的标签的另一个标签名称)保持原始的带注释的标签对象可达时,它才能保证保留在存储库中。

(没有根本原因树对象不能指向标记对象,所以有可能有一个提交对象指向一个保留旧注释标记的树。但 Git 不是为此而构建的,并且没有工具用于构建这样的东西,并且 git fsck 可能会认为它们是错误的。所以这更像是一个理论练习:理论上可以通过特殊提交来保存和持久化“旧标签”和“标签历史”,可能如果至少编写了一个 Git 管道命令和几个脚本,则通过一个新的引用 namespace (例如 refs/tagarchive/ )指向。当然,在有人编写这些之前,这都是纯粹的猜测。尚不清楚它们将如何有用,要么.)

关于git - 如何在 git 中显示标签的完整历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39782489/

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