我可以在发布项目时使用 git 'tag'吗?



我有一个问题,我在一个分支中开发我的应用程序,然后当我完成后,我将该分支合并到我的master中。我从master创建了一个标签。

在生产环境中,我的工作区中有我的应用程序git存储库。当我发布新版本时,我可以直接进入那个目录,签出我创建的标签吗?

ps,我认为这种方式是可行的,但以下内容让我感到困惑。

$ git branch
* (no branch)
master

我找不到我在生产环境中使用的标签,有什么方法可以显示我使用的标签吗?

在生产环境中,我的工作区中有我的应用程序git存储库。当我发布新版本时,我可以直接进入该目录,签出我创建的标签

是和否

Git假设您希望在当前签出的版本基础上进行新的工作。标签是不可变的(不可更改的),所以您不能对标签进行新的工作。因此,当你进行时会发生什么

$ git checkout <tag>

Git从<tag>开始检查所述标记的状态,并为您创建匿名分支(在Git文档中称为"分离的HEAD"),在那里您可以创建新的工作。

这就是您在git分支输出中看到(no branch)的原因:

$ git branch
* (no branch)
  master

IMVHO在"Git概念简化"一节"分离的HEAD等等"中很好地解释了"分离的HEAD"的概念(用图表),其中详细解释了git checkout v1.0操作。


我找不到我在生产环境中使用的标签,有没有办法显示我正在使用的标签

如果使用带注释/签名的标记(使用git tag -sgit tag -a创建),则可以使用git-descripte;如果使用轻量级标记,则使用git describe --tags

例如,你会得到

$ git describe
<tag>

如果你直接在标签上。

您可以使用git describe --abbrev=0来显示当前提交的最新标记。

所以如果你有

tag v1.00
tag v1.01
tag v1.02
tag v2.00

而您的git checkout v1.01git describe --abbrev=0将导致:

v1.01

是的,这就是它的使用方式。一定要推/拉标签,因为默认情况下不是这样。

相关内容

  • 没有找到相关文章

最新更新