我正在寻找一种方法来获取有关提交相对于标记(以及可能的分支)的提交位置的信息。是否有某种命令或命令组(如果需要,我也可以使用任何bash命令)我可以提交提交哈希并按顺序接收所有标记(和分支)的列表在相对于其他标签的正确位置?例如,如果在<commit-hash>
和tag2
之间发生tag3
,则执行以下命令:
[command(s)] <commit-hash>
会产生类似以下输出的内容:
branch1
tag1
tag2
<commit-hash>
tag3
branch2
master
我尝试使用git log
来执行此操作,但我真的不知道从哪里开始。这甚至可能吗?
答案 0 :(得分:4)
git describe --tags $rev
将在修订版本之前为您提供标签的简短说明(请参阅手册页以获取详细信息)。
git describe --contains $rev
会为您提供包含修订版的第一个标记。
git rev-list --branches --tags $rev
可能也是一个有用的开始。您可以通过使用该函数的一些“历史简化”参数来获得您想要的内容。我先尝试--simplify-by-decoration
,然后尝试--dense
。
要控制git rev-list
的输出,您可以使用--format
参数。使用--format=%d
获取引用名称(但不幸的是令人讨厌的格式)。