Git 标签已消失
Git tags have disappeared
我检查了一个新分支并将其命名为 v0.1.1
。我更改了 package.json
中的版本以匹配,并且我还使用 git tag
创建了一些标签。我最终将这个分支合并到 master 中,认为标记/版本控制 activity 会以某种方式“传播”到 master
。不但没有繁殖,还好像消失了,就好像我什么都没做一样。
步骤是什么:
- 在本地将提交标识为感兴趣的版本(无论它只是有用的基线还是实际发布 - 区别重要吗?那是两个单独的命令吗?)
- 确保任何此类版本控制信息在推送后立即在GitHub中可识别?
- 如果上述过程是错误的(即如果有 proper/better 方法来处理这一切)。
关于标签的几点:
标签需要显式推送到远程
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
永远,因为任何有名字或被有名字的东西指向的东西都不会死。
这基本上就是整个故事。你可以用我当时可能从事的任何分支做任何你喜欢的事情;没关系。您可以合并分支。您可以删除分支。您可以重命名分支。没什么区别。 myTag
和 D
将永远是 myTag
和 D
,永远,这就是他们永远的样子。
我检查了一个新分支并将其命名为 v0.1.1
。我更改了 package.json
中的版本以匹配,并且我还使用 git tag
创建了一些标签。我最终将这个分支合并到 master 中,认为标记/版本控制 activity 会以某种方式“传播”到 master
。不但没有繁殖,还好像消失了,就好像我什么都没做一样。
步骤是什么:
- 在本地将提交标识为感兴趣的版本(无论它只是有用的基线还是实际发布 - 区别重要吗?那是两个单独的命令吗?)
- 确保任何此类版本控制信息在推送后立即在GitHub中可识别?
- 如果上述过程是错误的(即如果有 proper/better 方法来处理这一切)。
关于标签的几点:
标签需要显式推送到远程
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
永远,因为任何有名字或被有名字的东西指向的东西都不会死。
这基本上就是整个故事。你可以用我当时可能从事的任何分支做任何你喜欢的事情;没关系。您可以合并分支。您可以删除分支。您可以重命名分支。没什么区别。 myTag
和 D
将永远是 myTag
和 D
,永远,这就是他们永远的样子。