Meskipun respons ididak cukup keren, dan Handyman5 menyediakan skrip untuk menggunakannya, saya merasa sedikit terbatas untuk menggunakan pendekatan itu.
Kadang-kadang Anda perlu mencari sesuatu yang dapat muncul / menghilang seiring waktu, jadi mengapa tidak mencari yang melakukan semua komitmen? Selain itu, terkadang Anda membutuhkan respons verbal, dan di waktu lain hanya melakukan kecocokan. Berikut adalah dua versi dari opsi tersebut. Letakkan skrip ini di jalur Anda:
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
Sekarang kamu bisa melakukannya
$ 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
Melihat bahwa menggunakan getopt Anda dapat memodifikasi skrip tersebut untuk mencari alternatif semua komit, ref, ref / head, telah verbose, dll.
$ git find-file <regex>
$ git find-file --verbose <regex>
$ git find-file --verbose --decorated --color <regex>
Periksa https://github.com/albfan/git-find-file untuk kemungkinan implementasi.