Как я могу выполнить поиск во всех моих Git-тайниках для определенной строки?

#git #git-stash

#git #git-stash

Вопрос:

git log --all -S <search-term> выполняет поиск в полной истории всех ветвей изменений, которые добавили или удалили данный поисковый запрос. Супер мощный. Супер круто.

Но что, если изменение, которое я ищу, никогда не было зафиксировано в ветке, а вместо этого было спрятано в Git-тайнике? Есть ли простой способ выполнить поиск во всех них для определенной строки?

(Я понимаю, что тайники — плохое место для хранения чего-либо важного в течение любого периода времени, и что временные ветви являются лучшим решением. Я также понимаю, что количество тайников, как правило, должно быть довольно низким. Но если отбросить лучшие практики, я был просто в ситуации, когда я знаю, что написал несколько месяцев назад код, но нигде не мог его найти. Ручная проверка моих хранилищ в поисках этого кода была утомительной задачей, которую я бы предпочел больше не испытывать.)

Ответ №1:

git stash list принимает те же параметры, что и git log . Итак, вы можете сделать git stash list -S <search term> .

Комментарии:

1. Я чувствую, что прочитал git stash справочную страницу по крайней мере дважды, но я почему-то так и не понял эту часть. Спасибо!

2. @ParkerCoates: Git часто скрывает важные секреты в одной строке документации. Например, git stash list действительно выполняется git reflog и git reflog действительно выполняется git log . 🙂