【发布时间】:2023-03-26 04:38:01
【问题描述】:
我需要一个命令来返回我当前签出的修订的完整参考名称。或者尽可能接近这个。如果只使用 git(用于跨平台目的),则大加分。
“完整参考名称”是指例如refs/tags/my-tag, refs/heads/my-branch.
例子:
git checkout master
magic command
# => /refs/heads/master
git checkout v1.0.0
magic command
# => /refs/tags/v1.0.0
git checkout 86742545e8152a8fbf31eafa55eb573042f61f5d
magic command
# =>
几个参考点:
- 实际上,我认为这不可能 100% 准确,因为(据我了解 git)检查标签和特定哈希之间没有区别。 IE。
.git/HEAD显示两种情况下的哈希值。 -
git show-ref显示所有引用和相应的提交哈希 -
git symbolic-ref HEAD适用于分支,使用-q选项,如果您不在分支上,它不会失败 -
git describe --tags --exact-match适用于标签,但您需要在其前面加上refs/tags并去掉 stderr
相关:
我能找到的所有东西对于我正在寻找的东西来说似乎都太复杂了。
【问题讨论】:
-
试试
git branch --list。它会给你当前签出分支的名称。 -
“我需要一个命令来返回我当前签出的修订的完整参考名称。”对此的现代术语是“xy 问题”:您处于某种情况下,您已经根据对它的理解构想了一种处理该情况的方法,并且正在寻求实施帮助以解决该方法中的一个麻烦步骤-没有解释任何方法或动机——当真正的问题是你正在尝试一种到目前为止还不是最理想的方法时,根本就没有支持它。你能解释一下是什么促使了这种尝试吗?
-
@jthill 感谢您的帮助和描述,但我的问题是想要完全按照问题中的描述进行操作。提示我想知道该怎么做。
-
好吧,我以前也曾有过闲散的好奇心,但我尽量不要将其称为“需要”,以免幽默的意图不那么含蓄。
-
很公平,我想我想知道是否有一个命令...
标签: git