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

chx*_*chx 8 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 
Run Code Online (Sandbox Code Playgroud)

这有更漂亮的版本吗?我猜镐应该有效,但git log -g看不到这个提交.

moc*_*ace 5

\n

...但git log -g没有看到这个提交

\n
\n\n

引用日志(仍然)引用的提交被认为是可达的,而不是悬空的。因此跑步git log \xe2\x80\x93g与你想要的相反,所以这里并不奇怪。

\n\n

可以通过 reflog 在 gc.reflogExpire 时间跨度内访问提交,默认值为 90 天。

\n\n
\n

有这个更漂亮的版本吗?

\n
\n\n

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

\n