2015-06-18 15 views
6

Badam repozytoria git. Chcę uzyskać listę zmienionych plików w każdym zatwierdzeniu.git - lista wszystkich zmienionych, ale nie usuniętych plików w zatwierdzeniu

Więc, co zrobiłem ja odwiedził każdy popełnić poprzez komendy

git reset --hard <commitId> 

Następnie użyłem

git show --pretty="format:" --name-only #{commitId} 

Problem z tego jest to, że daje usuniętych plików w tym commitId czego nie chcę. Próbowałem również:

git ls-files 

nie zwraca usuniętych plików, ale zwraca listę wszystkich istniejących plików, które są nowe lub zostały utworzone w poprzednim zatwierdzeniu.

Przykład:

>commit 1 
add "file1" 
add "file2" 

>commit 2 
change "file1" 

>commit 3 
add "file3" 
delete "file2" 

więc w tym przypadku, będę odwiedzić każdy popełnić. A jeśli jestem w zatwierdzeniu 1, chcę uzyskać listę "file1" i "file2". Jeśli jestem w zatwierdzeniu 2, otrzymam "plik1" i "plik3", jeśli jestem w zatwierdzeniu 3.

Każda myśl?

Odpowiedz

5

Spróbuj użyć tego polecenia:

git show --diff-filter=AM --pretty="format:" --name-only #{commitId} 

To jest to, co wspomniano w oryginalnym problemu z --diff-filter flagi dodane do ograniczać się tylko do plików, które zostały dodane (A) lub zmodyfikowane (M). Aby uzyskać pełną listę typów plików, do których można ograniczyć, zapoznaj się z dokumentacją dla git show.

Jak wspomniano w swojej odpowiedzi @MauricioTrajano, nie trzeba resetować do zatwierdzenia, aby zbadać to za pomocą git show. Wszystko, co musisz wiedzieć, to skrót SHA-1 zatwierdzenia, który możesz znaleźć, po prostu używając git log w danym oddziale.

+1

Powodem resetowania jest to, że chcę zobaczyć te pliki w tym czasie. – Arwa

2

Nie musisz resetować HEAD do wcześniejszego zatwierdzenia, aby to zrobić, tzn. Nie musisz tracić swoich lokalnych zmian, git diff pozwala ci porównać dwa zatwierdzenia, o ile potwierdzisz zatwierdzenie hashe. W twoim przypadku można zrobić:

git diff {COMMIT_1_HASH} {COMMIT_2_HASH} --name-only --diff-filter=AM 

ten może być używany, aby zobaczyć pliki dodanych i zmienionych między dowolną liczbą zobowiązuje.

Jeśli chcesz, aby pliki zostały dodane i zmodyfikowane tylko dla jednego zatwierdzenia, użyj skrótu zatwierdzenia zaraz po tym, który próbujesz obejrzeć.

Powiązane problemy