Git 标签已消失

Git tags have disappeared

我检查了一个新分支并将其命名为 v0.1.1。我更改了 package.json 中的版本以匹配,并且我还使用 git tag 创建了一些标签。我最终将这个分支合并到 master 中,认为标记/版本控制 activity 会以某种方式“传播”到 master。不但没有繁殖,还好像消失了,就好像我什么都没做一样。

步骤是什么:

关于标签的几点:

标签需要显式推送到远程

git push 不会将您的标签推送到远程。相反,您需要 运行(假设您的遥控器名为 origin):

git push origin --tags

推送所有标签或:

git push origin <tag>

推送单个标签。

因此,如果您想在 GitHub 上轻松识别提交,您必须确保推送相应的标签(或所有标签)。

您的标签并没有消失:它们只是在另一个分支上

您的标签没有消失:它们在您的分支上 v0.1.1

如果您 运行 git log 来自您的分支机构 master,您将看不到它们。但是如果你签出v0.1.1然后 运行 git log,你会看到它们。

另一种选择是 运行 git log --all:这会显示您所有的分支(甚至是那些不属于您所在分支的历史记录的分支)以及所有的存储和标签。

您可以列出所有标签:

git tag

您可以通过以下方式签出标签:

git checkout <tag>

标签是轻松识别提交的正确方法

要识别感兴趣的提交,标签确实是正确的方法。所以你的工作流程很好。

标签不过是一个特定提交的永久名称。例如:

A -- B -- C -- D <--(somebranch, HEAD)

假设我现在用名称 myTag 标记提交 D。然后我继续工作:

A -- B -- C -- D -- E -- F <--(somebranch, HEAD)
               |
             myTag

无论如何,从现在开始,myTag指的是提交D。不仅如此,它将有助于 preserve commit D 永远,因为任何有名字或被有名字的东西指向的东西都不会死。

这基本上就是整个故事。你可以用我当时可能从事的任何分支做任何你喜欢的事情;没关系。您可以合并分支。您可以删除分支。您可以重命名分支。没什么区别。 myTagD 将永远是 myTagD,永远,这就是他们永远的样子。