Podsumuj zmiany (wstawiania i usuwania) w Git [zamknięte]

47

Chcę spojrzeć, jak moja baza kodu urosła w czasie. GitHub ma ładny +/-wyświetlacz wzdłuż listy checkin, co daje poczucie tego. Czy jest coś podobnego, czego mogę używać z moim repozytorium Google Code lub offline?

Potatoswatter
źródło
1
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ użycie narzędzi specyficznych dla rozwoju oprogramowania. Te pytania należą do funkcji Przepełnienie stosu, ale to pytanie jest zbyt stare, aby przeprowadzić migrację.
Thomas Owens
zalecana lektura: Gdzie idzie moje pytanie git?
komara

Odpowiedzi:

71

W Git dostępnych jest kilka opcji uzyskania danych o zmianach.

git log --stat pokaże kwotę, którą zmienił każdy plik.

git whatchanged podaje trochę szczegółów w zmodyfikowanych plikach.

git diff --stat <sha1> <sha2> podaje pliki i ilość zmian między dwoma zatwierdzeniami.

Istnieje wiele innych blogów, które dają różne sformatowane logi. Wyszukiwarka google może cię na nie skierować. Zapewni to także git log --helpróżne opcje formatowania historii Twojego repozytorium. Git ma możliwość dostarczania całkiem sporo danych poprzez różne logopcje wiersza poleceń (filtrowanie według autora, pliku itp.).

Schleis
źródło
6
Piękny! Dzięki. Teraz widzę też --numstatmniej słodki, ale czysty format alternatywny.
Potatoswatter
18
--shortstatpo prostu wydrukuje sumy.
casey
1
należy pamiętać, że git diff --stat <sha1> <sha2>nie obejmuje wstawienia i delecje <sha1>, więc trzeba by umieścić shaod popełnienia tuż przed <sha1>do zawiera<sha1>
Vaibhav Vishal
18

Jeśli znasz zobowiązuje które chcesz porównać, można spróbować użyć na git diffpolecenie z --statargumentem. Daje to taki wynik:

$ git diff --stat HEAD^ HEAD
_layouts/default.html |    1 -
_sass/_variables.scss |    2 +-
_sass/main.scss       |   42 +++++++++++++++---------------------------
3 files changed, 16 insertions(+), 29 deletions(-)
Mike Gossmann
źródło
2
Zawsze lubię przykład, który działa w większości przypadków (HEAD - 1) zamiast abstrakcji. Dzięki Mike!
SimplGy,