DefinicjaKontrola wersji to system, który zapisuje historię zmian w plikach projektu. Najpopularniejszy jest Git. Każda zmiana ma autora, datę i opis, więc w każdej chwili widać, co się zmieniło, i można wrócić do wcześniejszej wersji.
Jak działa kontrola wersji?
Jeśli używasz Google Docs, znasz już ten pomysł. Dokument pamięta wszystkie wcześniejsze wersje: widzisz, kto co zmienił, i jednym kliknięciem wracasz do wersji sprzed tygodnia. Kontrola wersji robi to samo dla kodu strony albo aplikacji, tylko dokładniej.
Programista nie zapisuje zmian po każdym naciśnięciu klawisza. Zamyka je w porcje z krótkim opisem, na przykład „Dodany formularz rezerwacji” albo „Poprawione menu na telefonie”. Taka porcja to commit. Z commitów powstaje historia projektu, którą da się przeczytać jak dziennik budowy.
Dlaczego to ważne dla Ciebie, a nie tylko dla programisty?
Kontrola wersji wygląda na narzędzie dla programistów, ale najwięcej zyskuje na niej właściciel projektu.
- Błąd da się szybko cofnąć. Jeśli po zmianie coś przestało działać, wracamy do poprzedniej wersji, zamiast szukać problemu na żywej stronie.
- Projekt nie zależy od jednej osoby. Kod nie leży tylko na laptopie wykonawcy. Gdy zmienisz programistę, nowa osoba dostaje cały projekt razem z historią.
- Widzisz postęp. Historia zmian pokazuje, co zostało zrobione w danym tygodniu, bez zgadywania.
- Kod jest Twój. Repozytorium na Twoim koncie albo przekazane Tobie po zakończeniu pracy to dowód, że masz pełną kontrolę nad tym, za co zapłaciłeś.
Repozytorium, commit, gałąź: słowniczek
- Repozytorium
- Folder projektu razem z całą historią zmian. Zwykle trzymany w usłudze takiej jak GitHub.
- Commit
- Jedna zapisana zmiana z opisem, autorem i datą.
- Gałąź (branch)
- Osobna linia pracy, np. nad nową funkcją. Nie miesza się z działającą wersją, dopóki nie jest gotowa.
- Merge
- Połączenie gałęzi z główną wersją, gdy zmiana jest sprawdzona.
- Pull request
- Prośba o włączenie zmian, którą ktoś przegląda i zatwierdza przed połączeniem.
Git, GitHub, GitLab: czym to się różni?
Git to samo narzędzie do zapisywania historii zmian. GitHub, GitLab i Bitbucket to usługi w internecie, w których trzyma się repozytoria, przegląda zmiany i zarządza dostępami. Można to porównać do plików (Git) i dysku w chmurze, na którym leżą (GitHub).
Dla Ciebie najważniejsze jest, na czyim koncie jest repozytorium. Najbezpieczniej, gdy jest na koncie Twojej firmy, a wykonawca ma do niego dostęp, albo gdy przekazuje Ci je po zakończeniu pracy.
Czy strona na WordPressie też potrzebuje Gita?
Tak, jeśli ma własny motyw albo wtyczki pisane na zamówienie: ten kod powinien być w repozytorium. Pamiętaj jednak, że teksty i zdjęcia dodane w panelu WordPressa leżą w bazie danych, a nie w Gicie. Dlatego przy WordPressie potrzebne są też regularne kopie zapasowe bazy danych i plików. Git ich nie zastępuje.
O co zapytać wykonawcę
- Czy projekt będzie w repozytorium Git i czy dostanę do niego dostęp?
- Na czyim koncie będzie repozytorium i czy przekażesz mi je na koniec?
- Czy zobaczę, co zostało zrobione w danym tygodniu?
- Jak cofniesz zmianę, jeśli coś przestanie działać?
- Gdzie są kopie zapasowe bazy danych i plików (przy WordPressie)?
Najczęstsze pytania
Czy muszę umieć obsługiwać Gita?
Nie. Wystarczy, że masz dostęp do repozytorium i wiesz, gdzie ono jest. Obsługą zajmuje się programista, a Ty w razie potrzeby możesz przejrzeć historię zmian w przeglądarce.
Czy Git to to samo co GitHub?
Nie. Git to narzędzie do zapisywania historii zmian, a GitHub to usługa w internecie, w której trzyma się repozytoria. Podobnie działają GitLab i Bitbucket.
Czy Git zastępuje kopie zapasowe?
Dla kodu w dużej mierze tak, bo historia jest zapisana w repozytorium w chmurze. Nie obejmuje jednak treści z bazy danych, np. wpisów dodanych w panelu WordPressa, więc te potrzebują osobnych kopii zapasowych.