5

假设我有一个 blob 的 SHA。我可以去 git show 看看 blob 的内容。是否可以获得包含该 blob 的所有提交的列表?

4

2 回答 2

11

以下 scriptlet 应该可以解决问题:

#!/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
于 2012-05-22T21:53:34.157 回答
1

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

获取包含它的第一个(或最后一个)提交似乎并不容易(例如从补丁的差异index行确定该补丁的来源)

于 2016-09-17T13:57:49.287 回答