I jest GIT!
Być może obiło Ci się o uszy słowo GIT w kontekście prac programistycznych? A może "system kontroli wersji" brzmi znajomo? Tak? To świetnie! Nie? Najwyższy czas odrobić zaległości, ponieważ to jedna z najtańszych w implementacji i jedna z najbardziej rewolucyjnych technologii, która może znacznie ułatwić pracę i obsługę strony czy programu.
Czym jest system kontroli wersji?
Zadaniem systemu kontroli wersji jest śledzenie wszystkich zmian dokonywanych na pliku (lub plikach). Pozwala on przywrócić je do poprzednich wersji, daje możliwość odtworzenia stanu całego projektu, czy porównania wprowadzonych zmian. Dzięki niemu możemy dowiedzieć się kto, jako ostatni zmodyfikował część projektu powodującą problemy, a także kto i kiedy wprowadził konkretną modyfikację. W skrócie oznacza to, że używanie systemu kontroli wersji pozwala wyeliminować sytuacje krytyczne w projekcie - nawet jeśli popełniony zostanie błąd lub nastąpi utrata części danych, naprawa i odzyskanie ich powinno być łatwe. A wszystko to można uzyskać całkiem niewielkim kosztem.
Systemy kontroli wersji można podzielić na kilka sposobów. Najpopularniejszy jest podział ze względu na zastosowaną architekturę. Wyróżniamy systemy lokalne, scentralizowane i rozproszone. Najpopularniejsze współczesne rozwiązania należą do rozproszonych systemów kontroli wersji. Co to oznacza? Klienci, a więc osoby, które chcą uzyskać dostęp do pliku, nie dostają jedynie aktualnej, najnowszej wersji wszystkich plików, ale w pełni kopiują całe repozytorium (zbiór plików i ich historii). Awaria jednego z serwerów nie przyczyni się do utraty danych, ponieważ repozytorium każdego klienta może zostać po prostu skopiowane na ten serwer w celu przywrócenia go do prawidłowego stanu.
Po co mi ta cała kontrola wersji?
Konieczność wykonywania kopii zapasowych jest już wiedzą powszechnie znaną. System kontroli wersji jest drugim z filarów bezpieczeństwa. W dalszej części, przy omówieniu, skupimy się na działaniu systemu kontroli wersji dla procesu produkcji i obsługi strony internetowej.
Praca przy projekcie, który ma zaimplementowaną kontrolę wersji, jest znacznie przyjemniejsza dla dewelopera. Wybacza błędy, a w zespole deweloperskim umożliwia znalezienie osób odpowiedzialnych za konkretny fragment kodu. Znacznie przyspiesza to pracę i umożliwia na różnych odgałęzieniach historii wykonywać na tej samej stronie zupełnie różne, tymczasowo sprzeczne zadania. Dodatkowo umożliwia nieinwazyjne jednoczesne edytowanie tych samych plików. Zmodyfikowane pliki po odpowiednim zweryfikowaniu i połączeniu zmian zostaną umieszczone w ostatecznej wersji strony przeznaczonej dla klienta. Każda linijka kodu może być dokładnie sprawdzona i tylko poprawny kod zostanie opublikowany na serwerze klienta.
Na procesie pisania kodu strony wykorzystanie kontroli wersji wcale nie musi się kończyć. Wprowadzanie zmian i dodawanie kolejnych modułów lub innych elementów na stronie, a nawet ich późniejsze cofanie - to wszystko za sprawą historii wersji daje większą kontrolę nad obsługą strony przez dewelopera. Zmiana nie przypadła nam do gustu? Wystarczy kilka kliknięć i sprawny deweloper przywróci poprzednią, zadowalającą nas wersję.
No i git!
Najpopularniejszym systemem kontroli wersji jest Git. Powstały w 2005 roku, ewoluował i ustabilizował się jako narzędzie łatwe w użyciu. Jest szybki, bardzo wydajny przy pracy z małymi, średnimi, ale i dużymi projektami i posiada system gałęzi (ang. branch) do nieliniowego rozwoju projektu. Zanim Git umocnił swoją pozycję wśród deweloperów i programistów, konkurował z działającym w oparciu o architekturę scentralizowaną (pliki dostępne wyłącznie na jednym serwerze) systemem Supervision (svn). Ten drugi musiał uznać wyższość Gita pod koniec 2010 roku.
Wiele serwerów posiada możliwość użycia systemu git. Warto zapytać się swojego dostawcy, czy udostępnia na swoim serwerze taki system. Jeśli nie, można skorzystać z darmowych rozwiązań typu GitHub lub BitBucket. Bez konieczności płacenia mamy możliwość założenia publicznego repozytorium, co oznacza, że wgląd do plików i historii zmian będzie posiadał każdy. Repozytorium można zamienić na prywatne za odpowiednią opłatą. Jeżeli zależy nam na prywatności, warto zainwestować w takie rozwiązanie. Trzeba mieć na uwadze pewne ograniczenia. W przypadku korzystania z zewnętrznego repozytorium, żeby zmiany były śledzone, muszą być wykonywane na serwerze z zainstalowanym gitem, np. na serwerze lokalnym z odpowiednim pakietem. Umieszczenie plików na serwerze docelowym może uprościć tzw. deploy, który przesyła na serwer docelowy tylko te pliki, które były modyfikowane. Darmowym (z ograniczeniami) serwisem, który to umożliwia jest DeployHQ.
A czy Rekiny...?
Jak najbardziej! Z powodzeniem wykorzystujemy na naszym serwerze system kontroli wersji git. Od momentu wprowadzenia, znacznie przyspieszył naszą pracę i pozytywnie wpłynął na efektywność. Git to same zalety! Jeżeli temat wzbudził zainteresowanie, serdecznie zapraszamy do kontaktu!