我正在寻找一种方法来获取有关相对于标记(如果可能的话还有分支)的提交发生位置的信息。是否有某种命令或命令组(如有必要,我也可以使用任何 bash 命令)我可以提供提交哈希并接收所有标签(和分支)的列表,以便与提交中的提交相对于其他标签的正确位置?例如,如果 <commit-hash>
发生在 tag2
之间和 tag3
,然后执行以下命令:
[command(s)] <commit-hash>
会产生类似下面的输出:
branch1
tag1
tag2
<commit-hash>
tag3
branch2
master
我尝试使用 git log
这样做,但我真的不知道从哪里开始。这甚至可能吗?
最佳答案
git describe --tags $rev
将为您提供修订前标记的简短描述(有关详细信息,请参阅手册页)。
git describe --contains $rev
将为您提供第一个包含修订的标签。
git rev-list --branches --tags $rev
也可能是一个有用的起点。通过对该函数使用一些“历史简化”参数,您也许可以获得您想要的东西。我会先尝试 --simplify-by-decoration
,然后可能会尝试 --dense
。
要控制 git rev-list
的输出,您可以使用 --format
参数。使用 --format=%d
获取引用名称(不幸的是,格式很烦人)。
关于git - 如何显示提交在历史记录中相对于标签(和分支)的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27022001/