2015-04-16 18 views
5

Próbuję zobaczyć zatwierdzenia w historii repozytorium, ale tylko dla plików z określonym rozszerzeniem.Używanie git, aby zobaczyć wszystkie dzienniki związane z określonym rozszerzeniem pliku w podkatalogach

Jeśli jest to struktura katalogów:

$ tree 
. 
├── a.txt 
├── b 
└── subdir 
    ├── c.txt 
    └── d 

I to jest cała historia:

$ git log --name-only --oneline 
a166980 4 
subdir/d 
1a1eec6 3 
subdir/c.txt 
bc6a027 2 
b 
f8d4414 1 
a.txt 

Jeśli chcę zobaczyć logi do pliku z rozszerzeniem .txt:

$ git log --oneline *.txt 
f8d4414 1 

Zwraca tylko plik znajdujący się w bieżącym katalogu, a nie w podkatalogach. Chcę uwzględnić wszystkie możliwe podkatalogi w bieżącym katalogu.

Próbowałem również:

$ git log --oneline */*.txt 
1a1eec6 3 

oraz:

$ git log --oneline *.txt */*.txt 
1a1eec6 3 
f8d4414 1 

To działa w tym przypadku, ale nie jest to praktyczne dla kilku przypadkach generycznych.

I:

$ git log --oneline HEAD -- *.txt 
f8d4414 1 

bez powodzenia.

+0

Czy to musi być rozwiązanie git, czy może po prostu przeglądasz listę? –

+0

Tak, potrzebuję użyć git, ponieważ piszę skrypt, który używa innych poleceń git z większą liczbą opcji, i nie chcę, żeby git przetwarzał wszystkie pliki, tylko te z określonym rozszerzeniem. – hector

Odpowiedz

2

Spróbuj:

git log --oneline -- '*.txt' 

O ile mogę powiedzieć -- wykorzystywane do specyfikacji ścieżka zawiera podkatalogi. Tak więc -- '*.txt' przeszukuje wszystkie foldery z bieżącego katalogu w dół.

Można również ograniczyć wyniki, rozpoczynając wyszukiwanie w podkatalogu, np. -- 'sub/*.txt'.

+0

Dzięki! To dziwne, ponieważ działa bez prostego cytowania z rozszerzeniem * .java i * .rb. – hector

+0

Dzięki @hector! Nie zdawałem sobie sprawy, że cytaty były opcjonalne. Dodam to do odpowiedzi. – sfletche

+0

Nie jest opcjonalne rozszerzenie "* .txt", jeśli chcesz sprawdzić również podkatalogi. Po prostu próbowałem w wersji git 1.9.1. – hector

Powiązane problemy