Jak sprawdzić jakie były zmiany od ostatniej wydanej wersji
W dzisiejszym wpisie prosty trik, który pozwoli Wam zobaczyć jakie były zmiany w projekcie od ostatniej wydanej wersji aplikacji. Posłuży Nam do tego znane wszystkim polecenie git log 🙂
Ostatnie zmiany w projekcie
Kiedy to się może przydać?
- Kiedy po prostu chcemy wiedzieć ile już było zmian od ostatniej wersji 🙂
- Przy pisaniu changeloga do wydawanej wersji.
Jakie polecenie pokaże Nam historię projektu? Oczywiście, że:
git log
Polecenie to jako opcje może przyjąć parametry określające od kiego, oraz do kiedy czytać historię z repozytorium:
git log <since>..<until>
gdzie <since> i <until> to są referencje do commitów.
Fajne jest to, że nie trzeba tylko podawać hashy commitów. Polecenie przyjmuje wszystkie rzeczy, które są referencjami do commita. Możemy wpisać nazwę taga, nazwę brancha, wpisać słowo HEAD, które oznacza commita, na którym obecnie się znajdujemy.
Przykład
Mamy przykładowy projekt, w którym wydaliśmy już 3 wersję naszej aplikacji:
- 1.0.0
- 1.0.1
- 1.0.2
Każda wersja jest oznaczona tagiem, co widać w historii projektu.
Chcemy teraz zobaczyć jakie zmiany nastąpiły w aplikacji od ostatniej wydanej wersji. Nasza historia projektu jest krótka i wszystko w niej widać. Załóżmy, że mamy do czynienia z dużym projektem, gdzie jest dużo commitów i dużo tagów.
Na początku musimy dowiedzieć się jaki był ostatni tag. Następujące polecenie to Nam powie:
git describe --abbrev=0 --tags
Skoro znamy ostatni tag, teraz odczytujemy historię od tego taga do najnowszego commita:
git lg 1.0.2..HEAD
Bardzo ułatwiające jest to – że tak jak pisałem wcześniej – nie potrzebne są Nam hashe commitów 🙂 Wynik tego polecenia to:
Wystarczy teraz przepisać to do changeloga, zrobić drobne poprawki (jeśli commit messages tego wymagają) i już. Changelog zaktualizowany 🙂
W analogiczny sposób można zobaczyć co było zrobione w konkretnej wersji:
git lg 1.0.1..1.0.2
Zapis loga do pliku
Jeśli mamy dobrze opisane commity, to naszym changelogiem aplikacji mogą być właśnie te informacje. Z poziomu konsoli można w łatwy sposób zapisać to do pliku, aby później umieścić to w changelogu.
Zamierzamy się dowiedzieć co się działo w projekcie od wersji 1.0.2 i informacje o tych zmianach zapisać w pliku. Chcemy zapisać samo commit message – nic więcej.
git log 1.0.2..HEAD --pretty=format:%s >> log.txt
Początek polecenia jest już Nam znany.
--pretty-format:%s
Oznacza, aby polecenie log wyświetlało tylko commit message.
>> log.txt
Zapisuje dane do pliku log.txt, które zostanie stworzony w katalogu, w którym aktualnie się znajdujemy.
W pliku znajdują się tylko 3 linie, czyli 3 zmiany od wersji 1.0.2
Work 11
Work 10
Work 9
Alias
Wszystko działa, ale trzeba zrobić 2 kroki i zapamiętać nowe polecenie w gicie. Czy da się to jakiś uprościć? Oczywiście 🙂 Można sobie do tego zrobić alias np.: git lastchanges (nazwa dowolna) i w alias zapisać polecenie:
git lg $(git describe --abbrev=0 --tags)..HEAD
To polecenie pokaże Nam historię projektu od ostatniego taga. I już 🙂 Nie trzeba nic pamiętać tylko wpisać:
git lastchanges
i tyle.
*) lg w poleceniu to mój własny alias na git log, aby pokazywać każdy commit w jednej linii. Dla mnie to jest bardzie czytelne.
Podsumowanie
Git jest bardzo elastyczny, poznając kilka dodatkowych opcji można bardzo ułatwić sobie m.in. sprawdzanie zrobionych rzeczy pomiędzy wersjami czy nawet zapis do pliku.
Mam nadzieję, że ten wpis Wam pomoże.
0 Komentarzy