İdidak'ın tepkisi oldukça havalı olmasına rağmen ve Handyman5 bunu kullanmak için bir senaryo sağlasa da, bu yaklaşımı kullanmak için biraz kısıtlı buldum.
Bazen zaman içinde görünebilecek / kaybolabilecek bir şey aramanız gerekir, o zaman neden tüm taahhütlere karşı arama yapmıyorsunuz? Bunun yanı sıra, bazen ayrıntılı bir yanıta ihtiyacınız olur ve diğer zamanlarda sadece eşleşme yaparsınız. İşte bu seçeneklerin iki sürümü. Bu komut dosyalarını yolunuza koyun:
Git-Bul-dosya
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-Bul-dosya-ayrıntılı
for branch in $(git rev-list --all)
do
git ls-tree -r --name-only $branch | grep "$1" | sed 's/^/'$branch': /'
done
Şimdi yapabilirsin
$ 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
Getopt kullanarak , tüm komutları, başvuruları, referansları / kafaları, ayrıntılı olanları vb.
$ git find-file <regex>
$ git find-file --verbose <regex>
$ git find-file --verbose --decorated --color <regex>
Ödeme https://github.com/albfan/git-find-file olası bir uygulama için.