【问题标题】:Git command to get full reference name of current checkout, including tagsGit 命令获取当前结帐的完整参考名称,包括标签
【发布时间】:2020-08-10 18:44:27
【问题描述】:

我正在寻找一个可以提供以下输出的纯 git 命令:

  • 如果在分支“somebranch”中:

    [refs/]heads/somebranch

  • 如果在标签“1.2.3”中:

    [refs/]tags/1.2.3

“纯git”的要求是因为我需要它是跨平台的。

路径中的“refs”部分是可选的,但“heads”或“tags”对我来说是必需的。

我尝试了git describegit name-revgit show-refgit symbolic-ref 的不同变体,但它们都不适用于分支和标签。

我得到的最接近的是git symbolic-ref HEAD,但它不适用于标签,因为在签出时它们处于“分离头”状态。

完整的上下文:这旨在在构建自动化环境中运行,以便我可以定期格式化生成的构建和发布工件的名称。从概念上讲,我想设置标志“isMaster”(即签出主分支)和“isTag”(即签出给定标签)。

【问题讨论】:

    标签: git build-automation


    【解决方案1】:

    如果您的结帐是标签,则信息可能不可用。如果该信息完全可用,则它位于HEADreflog 中。唯一确定保存的信息是提交哈希 ID。

    如果您的结帐是一个分支名称,git symbolic-ref HEAD 将产生正确的答案。

    如果您需要可靠的信息,请让 CI 系统为您保存,因为 Git 不需要。

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2013-09-10
      • 2011-07-13
      • 2013-10-20
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2022-10-02
      相关资源
      最近更新 更多