【发布时间】:2012-05-22 20:58:25
【问题描述】:
假设我有一个 blob 的 SHA。我可以去 git show 看看 blob 的内容。是否可以获得包含该 blob 的所有提交的列表?
【问题讨论】:
标签: git
假设我有一个 blob 的 SHA。我可以去 git show 看看 blob 的内容。是否可以获得包含该 blob 的所有提交的列表?
【问题讨论】:
标签: git
下面的 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
【讨论】:
可能有点晚了,但git show <abbrev-sha1> 将显示该 blob 的内容等。git cat-file blob <abbrev-sha1> 也一样,使用 git cat-file -t <abbrev-sha1> 来检查它是一个 blob。
获取包含它的第一个(或最后一个)提交似乎并不容易(例如从补丁的差异index 行确定该补丁的来源)
【讨论】: