首页 > 解决方案 > 如何根据部分 id 在所有分支中查找提交

问题描述

如何在所有分支中找到提交?就我而言,它有 20 多个分支,而我只有部分提交 ID。我只知道它是开始或结束提交 id 的一部分。所有分支不包括一个是远程的。

标签: git

解决方案


我认为您正在寻找的是一个组合--contains选项,使用从修订列表中查找提交rev-list

git branch -a --contains $(git rev-list --all | grep <your-partial-commit-id>)

它首先使用部分 with 找到完整的提交 id

git rev-list --all | grep <your-partial-commit-id>

然后使用 -a 选项(对于所有分支)传递完整的提交 id 以在所有分支中搜索,并将提交 id 传递给--contains参数

git branch -a --contains <your-full-commit-id>

附加说明:在您的情况下,这是不正确的,但是如果知道部分 id 是完整提交 id 的开始部分(任何长度),那么您可以直接将其传递给,git branch --contains而无需从rev-list命令


推荐阅读