Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git全局标签——显然很糟糕,但为什么呢?_Git_Version Control_Linux Kernel_Versioning_Tags - Fatal编程技术网

Git全局标签——显然很糟糕,但为什么呢?

Git全局标签——显然很糟糕,但为什么呢?,git,version-control,linux-kernel,versioning,tags,Git,Version Control,Linux Kernel,Versioning,Tags,在他的著作中,Linus Torvalds非常强调git中的标记应该是私有的,并且在从其他人获取时不会自动包括在内: 拉动常规头部不能也不得更新标记。标签不是 与树相关联,它们不能也不一定是这样 因为这将使它们全球化而不是私有化,而且 从根本上使它们不被分发 以及: 认为把别人带到树上去是错误的,错误的,错误的 意味着你应该去拿他的标签 我不是内核黑客。我使用git的原因之一是能够从不同的位置编辑我自己的代码。标签似乎是描述不同版本以供将来参考的自然方式,例如,什么有效,什么无效,存在什么怪癖。

在他的著作中,Linus Torvalds非常强调git中的标记应该是私有的,并且在从其他人获取时不会自动包括在内:

拉动常规头部不能也不得更新标记。标签不是 与树相关联,它们不能也不一定是这样 因为这将使它们全球化而不是私有化,而且 从根本上使它们不被分发

以及:

认为把别人带到树上去是错误的,错误的,错误的 意味着你应该去拿他的标签

我不是内核黑客。我使用git的原因之一是能够从不同的位置编辑我自己的代码。标签似乎是描述不同版本以供将来参考的自然方式,例如,什么有效,什么无效,存在什么怪癖。因此,对我来说,让标签在抓取过程中持久化似乎很有帮助。有人能解释这种模式的危险是什么吗

为什么私有标签如此重要?还有什么选择呢?每次我想标记代码的特定版本时,我是否应该简单地创建一个单独的分支

我不知道,但是现在标签实际上是被提取的,这是相当长一段时间以来的默认设置

用今天的git术语来看,您引用的部分中的措辞似乎让我感到困惑,因此我敢说Linus的声明已经过时。

这里的关键词是“notautomatically”。您可以推拉标签,只需在推拉命令中指定即可。试试git推送--tags


(事实上,这些天标签是自动提取的,但推送必须是显式的。)

实际上默认情况下,标签在获取时自动跟随,这意味着git将获取指向获取的提交的标签。推送过程中不会自动包含标签,因为默认情况下git推送匹配的引用(根据定义,新标记不会出现在远程端,因此不会匹配)。请注意,这只是默认值;标记不会被推送,因为默认情况下是git推送匹配。在获取git autofolows标记时(即,在获取它们指向的提交时获取它们)。您始终可以将git配置为推送/获取所有标记。