假设我有一个blob的SHA。我可以使用git show命令查看blob的内容。是否可能获取包含该blob的所有提交的列表?
#!/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
也许有点晚了,但是git show <abbrev-sha1>
会显示那个blob等的内容。同样,git cat-file blob <abbrev-sha1>
也会显示它的内容,使用git cat-file -t <abbrev-sha1>
检查它是否是一个blob。
获取包含它的第一个(或最后一个)提交似乎不太容易(例如从补丁的diff index
行确定该补丁来自哪里)。