git - 如何显示提交在历史记录中相对于标签(和分支)的位置?

标签 git 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/

相关文章:

regex - 在 Bash 中使用逗号分隔的字符串作为变量的输入

git - 如何撤消 git commit --amend

git - nbstripout : what does `diff=ipynb` do in . gitattributes?

python - 如何通过使用 bash 脚本传递参数来运行 python 文件?

bash - perl 执行一个输入来自 <(cmd2 input) 的命令

bash - Hadoop 2.7.1安装没有bashrc吗?

Python 未在 GitBash 上运行

git - TFS 2017 Build 自动启动并一直失败

git - 将 Git、Gradle 和 Maven 与 ZScaler 证书一起使用?

Azure DevOps 中的 git hook 脚本