在Git的悬空提交中搜索字符串

时间:2014-02-20 09:47:28

标签: git git-dangling

下面的怪物很好地发现了一个包含上传这个词的git藏匿,这就是我想要的:

git fsck --no-reflog | awk '/dangling commit/ {print $3}' | \
while read ref; do if [ "`git show -p $ref|grep -c Upload`" -ne 0 ]; then echo $ref ; fi ; done 

这有更漂亮的版本吗?我猜镐应该可以工作,但是git log -g没有看到这个提交。

1 个答案:

答案 0 :(得分:4)

  

...但是git log -g没有看到此提交

reflog引用的(仍然)引用的提交被认为是可访问的而不是悬空的。因此,运行git log –g与你想要的相反,所以这里没什么惊喜。

可以通过glog.reflogExpire timespan的reflog访问提交,默认值为90天。

  

这有更漂亮的版本吗?

不,git fsck是访问悬空提交的正确方法。