Поиск строки в висячих коммитах в Git
Следующее чудовище очень хорошо нашло git stash, содержащее слово Upload, которое я искал:
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 ответ
Решение
... но
git log -g
не видит этот коммит
Коммиты, на которые (все еще) ссылаются reflog, считаются достижимыми и не висящими. Таким образом, работает git log –g
противоречит тому, что вы хотели, так что никаких сюрпризов здесь.
Коммиты будут доступны через reflog для периода времени gc.reflogExpire, по умолчанию 90 дней.
Есть ли более симпатичная версия этого?
Нет, git fsck
это правильный способ доступа к висящим коммитам.