如何根据ID的一部分在所有分支中查找提交

时间:2019-09-18 13:43:56

标签: git

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

3 个答案:

答案 0 :(得分:2)

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

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

它首先使用带有

的partial查找完整的提交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命令

获取完整的ID

答案 1 :(得分:0)

此命令将挽救您的生命

git reflog

参考here

enter image description here

答案 2 :(得分:0)

git rev-list --all | grep <your-partial-sha1>

...将输出存储库中SHA-1匹配的所有提交。