Pracuję nad repozytorium git zawierającym ogromną liczbę plików zmienionych b/w jednym commitem na drugie, jak wyodrębnić liczbę zmian plików b/w popełnia.Jak znaleźć liczbę plików zmienionych z jednego zatwierdzenia na inny w git
Odpowiedz
Narzędzie git whatchanged
pokazuje podsumowanie plików, które zostały zmodyfikowane. Sama to zawiera listę wszystkich zobowiązuje, ale można również ograniczyć go tylko niedawne n zobowiązuje:
git whatchanged -1
Aby policzyć pliki:
git whatchanged -1 --format=oneline | wc -l
Zobacz git help whatchanged
dla details.
Zauważ, że to zawsze policzy pliki plus jeden, ponieważ '--format = oneline' zawiera skrót mieszający/nagłówkowy. – c00kiemon5ter
@ Cook: Tak, dobra uwaga. –
'git whatchanged -1 --format = oneline | ogon -n +2 | wc -l' –
użyj:
git log --oneline --name-status <HASH> -1
np
$ git log --oneline --name-status bb3ae49 -1
M .vim/spell/en.utf-8.add
M .vim/spell/en.utf-8.add.spl
ten działa podobnie jak
git whatchanged --oneline --name-status <HASH> -1
To powinna być akceptowana odpowiedź, ponieważ używanie 'git whatchanged' jest odradzane. –
Oprócz metod wymienionych powyżej można to zrobić też:
git diff HEAD^..HEAD --name-only
- dadzą listę plików zmieniło między HEAD
i jedną korektę przed głową (HEAD^
). Można zastąpić HEAD^
z SHA1 z „z” popełnić i HEAD
z SHA1 z „do” popełnić:
git diff <SHA1-of-from-commit>..<SHA1-of-to-commit> --name-only
więc jeśli rura wyjście do wc -l
to powinno dać liczbę plików zmienił się między zatwierdzeniami.
Znacznie bardziej przydatna jest możliwość liczenia plików pomiędzy arbitralnymi zatwierdzeniami - nie tylko pliki zmienione w jednym zatwierdzeniu. Zauważ, że działa również z nazwami gałęzi i znacznikami (i oczywiście innymi skrótami commit oprócz HEAD i HEAD ^) –
git show --stat
Daje listę plików zmieniony tak:
1 plik zmieniony, 1 wstawianie (+), 1 skreślenia (-)
Opcjonalnie można dodać kod popełnienia jeśli don Chcę uzyskać informacje od najnowszych.
git show --stat {commit code without brackets}
W oknach:
git whatchanged -1 --format=oneline | find /v /c ""
Ważną windows-specyficzny kawałek jest, że trzeba zastąpić polecenie wc używany w innych roztworach z tym:
| find /v /c ""
- 1. Jak wyświetlić listę zmienionych plików dla pojedynczego zatwierdzenia, w Git?
- 2. Eksportowanie/archiwizowanie zmienionych plików tylko w Git
- 3. Jak skopiować zatwierdzenia z jednego repozytorium Git na drugie?
- 4. Jak przenieść lokalne repozytorium git z jednego hdd na inny?
- 5. Odgałęzienie Git do jednego nowego zatwierdzenia
- 6. Użycie Git do utworzenia archiwum zmienionych plików
- 7. git: lista wszystkich zmienionych plików, łącznie z tymi w submodułach
- 8. Przenoszenie plików z jednego rozwiązania Visual Studio na inny
- 9. Drukuj komunikat zatwierdzenia danego zatwierdzenia w git
- 10. Jak uzyskać ostatnią datę zatwierdzenia dla kilku plików w Git?
- 11. Jak zmienić nazwę wielu plików z jednego rozszerzenia na inny w systemie Linux/Unix?
- 12. Git: Scalanie wielu zatwierdzeń z jednego oddziału w inny
- 13. Kopiowanie z jednego rejestru na inny
- 14. git - lista wszystkich zmienionych, ale nie usuniętych plików w zatwierdzeniu
- 15. przenoszenie bajtów z jednego ByteBuffer na inny
- 16. Usuń puste zatwierdzenia w git
- 17. Jak przekonwertować w OpenERP z jednego wykresu konta na inny?
- 18. Jak przekierować połączenie z jednego numeru na inny w Androidzie
- 19. Jak uzyskać listę zmienionych plików w svn?
- 20. Git Squash według autora - Wszyscy autorzy zatwierdzają do jednego zatwierdzenia
- 21. Repozytorium Git z jednego komputera na drugie
- 22. Jak liczyć zatwierdzenia git na użytkownika w zakresie dat?
- 23. git stosuje zmiany od jednego zatwierdzenia do innego oddziału
- 24. zmiana komentarza git zatwierdzenia pushed
- 25. Jak przeciągnąć i upuścić przycisk z jednego panelu na inny?
- 26. Konwertuj z jednego uczestnika na inny. Pseudo-cast
- 27. Jak zmienić wszystkie kolumny SQL jednego DataType na inny
- 28. Jak przeciągnąć siatkę z jednego gridsteru na inny gridster?
- 29. Dzielenie pierwszego zatwierdzenia w git
- 30. Kopiowanie pliku z jednego projektu na inny w maven
Maybe 'git whatchanged'? –
@Kerrek SB To wygląda na dobrą odpowiedź. Dlaczego umieściłeś to w komentarzu, a nie jako odpowiedź? Przepraszam, czasami po prostu tego nie rozumiem. – SteeveDroz
@Oltarus: OK, gotowe :-) Nie wydawał się wystarczająco duży, aby uzasadnić odpowiedź, i nie jestem pewien, czy to naprawdę spełnia potrzeby. Po sprawdzeniu niektórych dokumentów wydaje się, że tak jest! –