为什么 git 标记一个斑点或一棵树(或一个标记)?
Why git tag a blob or a tree (or a tag)?
我了解如何 可以使用 git 标签来标记一个 blob、一棵树,甚至另一个带注释的标签。我了解使这成为可能的体系结构和概念设计。
但是,我很难想到这个(或 "real workflow" 个应用程序)在现实生活中的应用。
在 Stack Overflow 上搜索时,我只找到一个提到标记非提交对象的答案,advice not to do so。
在什么可能情况下曾经适合标记非提交对象?
Are there any use cases where it would be appropriate to tag a non-commit object?
如您所想。简而言之,您应该避免 non-commit
标记。
例如,假设您修复了代码(热修复)及其更大提交的一部分
为什么?
因为它是这样提交的,后来你才发现你只需要一个文件。
现在您想标记此更改的文件(内容)而不标记所有其他内容。
示例 2:
您正在检查代码,试图找出导致错误的文件,要标记单个提交,您可以使用标记或 git note
,但要标记单个文件,您将使用 tag
.
还有其他一些例子。
The Linux kernel repository also has a non-commit-pointing tag object – the first tag created points to the initial tree of the import of the source code
标记树或 blob 可能暂时适用于直接操作对象的长期 运行ning 实用程序。标记将确保 git gc
可以安全地 运行 并行。实用程序会在创建提交时删除标签。
我了解如何 可以使用 git 标签来标记一个 blob、一棵树,甚至另一个带注释的标签。我了解使这成为可能的体系结构和概念设计。
但是,我很难想到这个(或 "real workflow" 个应用程序)在现实生活中的应用。
在 Stack Overflow 上搜索时,我只找到一个提到标记非提交对象的答案,advice not to do so。
在什么可能情况下曾经适合标记非提交对象?
Are there any use cases where it would be appropriate to tag a non-commit object?
如您所想。简而言之,您应该避免 non-commit
标记。
例如,假设您修复了代码(热修复)及其更大提交的一部分
为什么?
因为它是这样提交的,后来你才发现你只需要一个文件。
现在您想标记此更改的文件(内容)而不标记所有其他内容。
示例 2:
您正在检查代码,试图找出导致错误的文件,要标记单个提交,您可以使用标记或 git note
,但要标记单个文件,您将使用 tag
.
还有其他一些例子。
The Linux kernel repository also has a non-commit-pointing tag object – the first tag created points to the initial tree of the import of the source code
标记树或 blob 可能暂时适用于直接操作对象的长期 运行ning 实用程序。标记将确保 git gc
可以安全地 运行 并行。实用程序会在创建提交时删除标签。