W tej serii artykułów rozpocznę pracę z systemem kontroli wersji – Git. Opowiem, czym ów system jest, do czego go używamy, czy warto go używać, zaprezentuję przykłady wraz z omówieniem oraz dorzucę kilka praktycznych przykładów, które dość często występują w pracy. Jeżeli nie miałeś wcześniej styczności z tą tematyką to ten wpis i jego następne wydania są dla Ciebie, jeżeli już znasz podstawy Git’a, to ten wpis możesz pominąć, ale następne warto już zobaczyć 🙂
System kontroli wersji – Git, Co to jest
Każdy, kto pisał kod, książkę, prezentację czy cokolwiek innego co wymagało zapisywania konkretnego stanu, w taki sposób, aby nie utracić obecnych danych i móc powrócić do poprzedniej wersji, wie, jak ważne jest zapisywanie, archiwizowanie obecnego statusu pracy. Aby lepiej zobrazować sytuację, posłużę się przykładem grania w gry. Gdy gramy w grę komputerową raz na jakiś czas chcemy zapisać nasz stan gry. Jest to bardzo użyteczna funkcja, ponieważ nie musimy siedzieć X godzin i grać bez przerwy. Możemy zapisać grę po jednej godzinie grania, pójść na podwórko pograć w piłkę wrócić pod wieczór i wczytać wcześniejszy stan gry i ją kontynuować. Jeżeli podczas grania zostaniemy zabici albo rozwiążemy źle questa, albo-co gorsza wyłączą nam prąd w domu, to mając save’a jesteśmy zabezpieczeni przed utratą danych.
To samo zjawisko powstaję podczas pisania kodu. Piszemy stronę internetową mamy już pokaźną liczbę linijek i chcemy się zabezpieczyć przed ich utratą. Możemy skopiować nasz cały folder i umieścić go w innym folderze na dysku albo zipować i wrzucić do chmury, czy do załącznika na mailu takie operacje na dłuższą metą mogą być dość upierdliwe. Aby w sposób wygodny i komfortowy zapewnić sobie historię tworzenia naszego kodu, wykorzystamy systemu kontroli wersji a dokładniej Git. Istnieje wiele innych podobnych systemów, ja skupię się tylko na gicie 🙂
Pracując z gitem nasz kod jest archiwizowany lokalnie u nas na dysku oraz na zewnętrznych serwerach pod warunkiem, że wykonamy odpowiednią komendę i wrzucimy nasz kod na zewnątrz. Zewnętrzne serwery to na przykład: github albo bitbucket.
Zewnętrzne repozytoria
Github to jedno wielkie repozytorium, w którym każdy ma swoją „szafkę”, do której umieszcza odpowiednie projekty. Ja korzystam z obu. Github to obowiązek każdego programisty. Tam umieszczasz swoje wszystkie prace. WSZYSTKIE, nawet te ze studiów. Dlaczego?, a no dlatego, że przyszły pracodawca widzi od razu, a przynajmniej ma jakiś punkt odniesienia do Twoich umiejętności, a po drugie zbierasz punkty na starcie, starając się o nową pracę i wyróżniasz się na tle innych. Oczywiście jak już masz X-letnie doświadczenie to możesz nie załamywać się, że wcześniej nie miałeś w repo swoich pierwszych wymęczonych w bólach kodu 🙂
Kod się rodzi w bólu.
Na githubie projekty są publiczne w wersji darmowej, jeżeli chcesz mieć swoje prywatne repo do którego masz tylko Ty dostęp, musisz wykupić pakiet, albo założyć konto na bitbucket.
Bitbucket jest tym samym co github, czyli kolejnym jednym wielkim repo, z tą różnicą, że darmowa wersja pozwala tylko na prywatne repozytoria, które widzisz tylko Ty, a wersja rozszerzona pozwala na publiczne aspekty.
Podsumowanie
Reasumując, git pozwala zapisywać obecny status naszych prac lokalnie na dysku bądź globalnie na serwerze. Możemy nasz obecny stan zapisać, wrócić do poprzedniego zapisu, porównać zapis poprzedni z obecnym, przechodzić między zapisami i sprawdzać jak wyglądał kod na danym etapie. Każdy zapis musimy zrobić sami, nie ma auto sava. Więc co zapiszesz to zostanie zapamiętane 🙂
Ważna informacja, git jest opensourcowy, czyli darmowy, możesz korzystać z niego, kiedy chcesz i gdzie chcesz.
Pozdro 🙂