Cześć.

Przy okazji ostatniego wpisu dowiedziałeś się co nieco na temat tego jak zacząć pracę w gicie, jak sprawdzać zmiany które poczyniłeś od poprzedniego commita oraz jak wysłać wszystko na zewnętrzne repozytorium. Dziś ciąg dalszy przygody z gitem. W krótkich słowach - podstaw gita część druga.

Ok, załóżmy że korzystasz już z jakiegoś istniejącego repozytorium, np. Twój kod został pozmieniany przez kogoś innego. Pobierasz najnowsze zmiany i chciałbyś się conieco dowiedzieć o dokonanych zmianach. Jak to zrobić najprościej?

git log

Powyższe polecenie zwróci podstawowe informacje o tym co działo się z kodem przez całe jego "życie". Zwrócony zostanie numer commita, autor, data oraz opis zmian (ten który jest podany przy commitowaniu zmian) w kolejności od najnowszej zmiany.

Dodając do polecenia opcję -p wykazane zostaną dodatkowo zmiany które zostały wprowadzone, podobnie jak polecenie diff w przypadku lokalnych zmian. Dodatkowo istnieje możliwość ograniczenia ilości wyświetlanych zmian przez użycie w kolejnej opcji liczby. I tak np.

git log -p -1

zwróci ostatnią zmianę w każdym commicie.

Aby zobaczyć statystyki zmian, tzn. ile linijek dodano/usunięto, ile plików zmieniono itd. należy użyć polecenia

git log --stat

Istnieje jeszcze kilka wariacji związanych z funkcją log jednak nie są one wykorzystywane zbyt często. Jeśli chcesz się o nich dowiedzieć zajrzyj do dokumentacji.

Teraz coś dla zapominalskich! Pewnie nie raz zdażyło Ci się zrobić commit i zapomnieć o jakieś drobnostce. Uwaga, nie rób wtedy oddzielnego commita. Dołącz te zmiany do poprzedniego.

git commit --amend

To załatwi sprawę. Ale pamiętaj, jeżeli już wcześniej wysłałeś ten commit do repozytorium, przy ponownym wysyłaniu użyj opcji --force, aby nadpisać wcześniej zapisany commit.

Druga sprawa to pliki, których w ogóle nie chcesz wysyłać do repozytorium, ale pokazały się na liście gotowych do dodania, ponieważ zawierają jakieś zmiany. Jak je z niej usunąć? Najprościej to użyć podpowiedzi z gita.

git checkout --nazwa_pliku

Pamiętaj jednak, że użycie tego polecenia wiąże się z bezpowrotną utratą wprowadzonych zmian.