Strona główna » Blog » Git a kreatywność

Git a kreatywność

Wspominałem już wcześniej o zaletach Gita w stosunku do SVN, ale nie wypowiedziałem się szerzej na temat pracy na gałęziach, która jest wielką zaletą tego systemu kontroli wersji. Teraz chciałbym poświęcić temu kilka słów.

Git jest bardzo przyjazny pracy na rozgałęzionym i scalającym się kodzie. Ktoś, kto nie korzystał z tego systemu albo też nie korzystał w tym zakresie, może obawiać, że możliwość mnożenia gałęzi przełoży się na ogromne problemy z konfliktującym się kodem. No więc te problemy nie są jakieś ogromne. Natomiast zyskuje się coś innego – praca na gałęziach znacząco wspomaga zachowanie porządku oraz otwiera drogę do kreatywności. Możliwe się staje bardzo łatwe testowanie różnych podejść do danego zagadnienia. Doświadczyłem tego samemu tworząc eksperymentalną implementację algorytmu MD5 w Prologu (repo na Github nie zawiera widoku wszystkich działań z lokalnego repo), której istotne fragmenty wykonywałem na wiele różnych sposobów: “czystym” Prologiem, programowaniem w ograniczeniach na liczbach całkowitych, programowaniem w ograniczeniach na zmiennych boolowskich, używając kodowania liczbami pierwszymi i stosując wiele innych podejść. Pomysłów miałem dużo, ale bywały one ze sobą niekompatybilne. Stąd powstawały odgałęzienia i od tych odgałęzień odgałęzienia. Miałem okazję dzięki temu doświadczyć różnych wariantów zdarzeń – wydzielania gałęzi z istniejących commitów, wycofywania commitów, łączenia. Aktualnie w tym wszystkich może tylko raz zdarzyło mi się usuwanie konfliktu w kodzie. W zasadzie nic nie wstrzymywało moich prac.

Bez Gita mogłoby być trudno dać ponieść się pełnej kreatywności w wymyślaniu rozwiązań, bo lęk przed zepsuciem tego poprzez wejście w czasochłonne manipulacje kodem, gałęziami, wersjami i konfliktami mógłby być zniechęcający. Z Gitem wiele działań zdaje się natomiast nic nie “kosztować”: gałąź zakładamy błyskawicznie, przełączamy się między gałęziami błyskawicznie, tagujemy wybrane momenty jako odniesienie na przyszłość, scalamy to co dobre, rozgałęziamy to na co mamy nowy pomysł. Działania te są bardzo szybkie.

Polecam korzystanie z tego systemu każdemu, kto mierzy się z problemami przy których musi sprawdzić wiele różnych rozwiązań oraz chce mieć możliwość łatwego powrotu do rozwiązań wcześniej odrzuconych, aby je rozgałęzić nowymi pomysłami, które pojawiły się podczas prac w innych gałęziach.

Dodaj komentarz