按Blob列出Git提交记录

5

假设我有一个blob的SHA。我可以使用git show命令查看blob的内容。是否可能获取包含该blob的所有提交的列表?

2个回答

11
以下的脚本应该能解决问题:
#!/bin/sh

blob=deadbeefdeadbeefdeadbeefdeadbeef

git rev-list --all |
while read commit; do
    if git ls-tree -r $commit | grep -q $blob; then
        echo $commit
    fi
done

1

也许有点晚了,但是git show <abbrev-sha1>会显示那个blob等的内容。同样,git cat-file blob <abbrev-sha1>也会显示它的内容,使用git cat-file -t <abbrev-sha1>检查它是否是一个blob。

获取包含它的第一个(或最后一个)提交似乎不太容易(例如从补丁的diff index行确定该补丁来自哪里)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接