Napisz do autora
You can use this page to email Jacek Drąg about GIT średniozaawansowany.
O Książce
Odkryj wewnętrzne piękno i elegancję Gita! Naucz się tworzyć porządne, profesjonalne repozytoria!
Mając w głowie poprawne abstrakcje, wiesz dlaczego i co powinno się zrobić.
Odpowiedź na pytanie jak to zrobić jest wówczas łatwiejsza.
„GIT średniozaawansowany” daje Czytelnikowi wyczucie mechaniki Gita. Szczególnie przydatne, gdy wystąpią sytuacje nieoczywiste.
Na pierwszy rzut oka, Git sprawia wrażenie plątaniny dziwacznych komend z niezrozumiałymi parametrami. Dokumentacja jest trudna w czytaniu. Tak więc wydaje się, że próg wejścia jest wysoki. Rodzi to naturalną pokusę pójścia po linii najmniejszego oporu: nauczenia się kilku operacji (wykonywanych z linii komend, narzędzia graficznego lub IDE) typowych dla sposobu pracy zespołu.
W konsekwencji repozytorium jest zaśmiecone wersjami projektu o słabej jakości, z których wiele nie spełnia ustanowionych standardów. Są to np.:
Wersje „under construction”: Zmiany zatwierdzone „przed obiadem”, po code review itd. Ok, można sobie z tym od biedy radzić, np. używając opcji --squash
.
Wiele niekoherentnych zmian w jednej wersji: Zmiany trudne do przejrzenia/zrozumienia; utrudniające/uniemożliwiające wycofanie się z części z nich. Okazuje się, że nie działa tu zasada „łatwiej kijek pocienkować, niż go potem pogrubasić”.
Czy w roku 2023 takie zaśmiecone repozytorium to nie za mało dla prawdziwie profesjonalnego zespołu? Czy naprawdę jednostką sukcesu powinna być scalona — zesquashowana bądź nie — gałąź? Może jednak należy dążyć do sytuacji, gdy każdy commit wprowadza jedną autonomiczną zmianę?
„GIT średniozaawansowany” jest krótki.
Na 100 stronach luźnego tekstu A4 książka — często poprzez eksperymenty — wprowadza w świat abstrakcji Gita. Daje Czytelnikowi aparat pojęciowy i praktyczną wiedzę zilustrowaną przykładami.
Głównych pojęć potrzebnych, aby czuć mechanikę Gita (dlaczego i co należy robić), jest niewiele. Są to:
- Repozytorium jako graf commitów.
- Refy (różnego rodzaju) jako narzędzia służące do uprawiania grafu (lokalnego i zdalnych).
- Niezmienniczość grafu, a przepisywanie historii (przeszczepianie commitów).
- Współpraca repozytorium lokalnego z repozytoriami zdalnymi jako współdzielenie podgrafów.
Metafory wszystkich tych pojęć wraz z ich wzajemnymi powiązaniami zmieściły się na okładce! Czy potrafisz je rozpoznać? Sprawdź krótką sesję youtube: Making the front cover.
W książce autor „odczarowuje” często niezrozumiałe lub błędnie postrzegane pojęcia szczegółowe (jak coś można zrobić):
- commit
- indeks/staging area
- reset
- rebase
- fast-forward-merge
- konflikt scalania
Książka może posłużyć jako przewodnik „od zera do bohatera”, ale nawet po miesiącach/latach użytkowania Gita, warto czasem zatrzymać się na chwilę i wrócić do źródeł.
Opisywane tematy zilustrowane są przykładami i zawierają odnośniki do dokumentacji. Kwestie zaawansowane (np. refspec
) oraz obszerne (np. git log
) opisane są syntetycznie, ze wskazaniem interesujących zagadnień i odesłaniem do odpowiednich fragmentów dokumentacji.
Powtórzenia zawarte w książce są zamierzone, mają one pomóc Czytelnikowi utrwalić sobie właściwe pojęcia.
O Autorze