chodzi mi o całe "zamieszanie" związane z commitami,
Jak mi się nie chce i pracuję nad czymś, co i tak nie ujrzy światła dziennego i tak nie wrzucę na GH), to czasem robię po prostu git commit -a -m ":)"
i w logu mam ileś commitów :)
.
Oczywiście staram się w miarę możliwości dawać sensowne opisy commitów (nawet programując w pojedynkę opłaca się mieć porządek, szczególnie, że część z tego co sobie robię, wrzucam na Githuba, co fajniejsze projekty), ale jednak przyznaję się - zdarza mi się pisać :)
.
Ale opis commitu to tylko opis, ważniejsze jest, że możesz sobie podglądnąć co kiedy robiłeś. I nie tylko chodzi o cofanie się w czasie ale również na panowanie nad tym, co aktualnie robisz. git diff
przed commitem pozwala na taki mały code review tego co naprodukowałeś przez ostatnie kilka godzin. Wiesz, które pliki były ruszane i co w nich zmieniałeś, czy może jakieś pozostałości debugowania zostały itp.
Podobnie git show
pozwala na podejrzenie poprzednich commitów. Dosiadasz do projektu po miesiącu, gubisz kontekst, ale piszesz git show -5
i masz 5 ostatnich commitów (niektórzy używają jakiegoś GUI do Gita i wyklikują to, ale to tylko kwestia interfejsu).
Nie mówiąc już o jakichś sytuacjach awaryjnych typu spieprzyłeś niechcący coś w kodzie albo dokonujesz dużej refaktoryzacji i cóż, nie udało ci się, testy nie przechodzą (albo w ogóle nie zostały napisane), na dodatek po przemyśleniu architektury uważasz, że cały pomysł na refaktoryzację był do d**y... Wtedy Git to zbawienie.
Poza tym Git pozwala na wyrzucanie niepotrzebnego kodu bez skrupułów. Zbędny komentarz? To usuwasz. Git i tak to będzie pamiętał. Kod - eksperyment, który był tylko do połowy udany i trzeba go wyrzucić. Ale szkoda wyrzucać całkowicie, bo może ci się jeszcze przydać? To wydzielasz nową gałąź, commitujesz ten kod do gałęzi i nie musisz tego mieć w masterze.
Tak więc nawet programując samemu mamy zysk.