如何解决Git命令可获取当前结帐的完整参考名称,包括标签
- 如果在“ somebranch”分支中:
[refs/]heads/somebranch
- 如果在标签“ 1.2.3”中:
[refs/]tags/1.2.3
成为“纯git”的要求是因为我需要它是跨平台的。
path中的“ refs”部分是可选的,但我需要“ heads”或“ tags”。
我尝试了git describe
,git name-rev
,git show-ref
,git symbolic-ref
的不同变体,但是它们都不适用于分支和标记。
我得到的最接近的是git symbolic-ref HEAD
,但不适用于标签,因为签出时它们处于“分离头”状态。
完整上下文:它打算在构建自动化环境中运行,以便我可以有条件地格式化生成的构建和发布工件的名称。从概念上讲,我要设置标志“ isMaster”(即检出master分支)和“ isTag”(即检出给定标签)。
解决方法
如果您的结帐带有标签,则该信息可能不可用。如果该信息完全可用,则位于HEAD
的 reflog 中。唯一肯定保存的信息是提交哈希ID。
如果您的结帐属于分支机构名称,git symbolic-ref HEAD
将给出正确的答案。
如果您以可靠的方式需要信息,请让CI系统为您保存信息,因为Git不需要。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。