微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Git命令可获取当前结帐的完整参考名称,包括标签

如何解决Git命令可获取当前结帐的完整参考名称,包括标签

我正在寻找一个纯git命令,它将给出以下输出

  • 如果在“ somebranch”分支中:

    [refs/]heads/somebranch

  • 如果在标签“ 1.2.3”中:

    [refs/]tags/1.2.3

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

path中的“ refs”部分是可选的,但我需要“ heads”或“ tags”。

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

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

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

解决方法

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

如果您的结帐属于分支机构名称,git symbolic-ref HEAD将给出正确的答案。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。