Aunque la respuesta de ididak es bastante buena, y Handyman5 proporciona un script para usarlo, me pareció un poco restringido usar ese enfoque.
A veces necesitas buscar algo que pueda aparecer / desaparecer con el tiempo, así que ¿por qué no buscar en todas las confirmaciones? Además de eso, a veces necesitas una respuesta detallada, y otras veces solo confirmas coincidencias. Aquí hay dos versiones de esas opciones. Pon estos scripts en tu camino:
git-find-file
for branch in $(git rev-list --all)
do
if (git ls-tree -r --name-only $branch | grep --quiet "$1")
then
echo $branch
fi
done
git-find-file-verbose
for branch in $(git rev-list --all)
do
git ls-tree -r --name-only $branch | grep "$1" | sed 's/^/'$branch': /'
done
Ahora puedes hacer
$ git find-file <regex>
sha1
sha2
$ git find-file-verbose <regex>
sha1: path/to/<regex>/searched
sha1: path/to/another/<regex>/in/same/sha
sha2: path/to/other/<regex>/in/other/sha
Vea que usando getopt puede modificar ese script para alternar la búsqueda en todos los commits, refs, refs / heads, estado detallado, etc.
$ git find-file <regex>
$ git find-file --verbose <regex>
$ git find-file --verbose --decorated --color <regex>
Consulte https://github.com/albfan/git-find-file para una posible implementación.