Git funkcjonuje jako wolne oprogramowanie na licencji GNU GPL w wersji drugiej. Oznacza to, że jest dostępny za darmo pod warunkiem, że nie udostępniamy zmodyfikowanej wersji programu. Wiele dużych projektów korzysta z systemu kontroli wersji Git, np. jądro systemu Linux. Ponadto kilka popularnych serwisów internetowych wykorzystuje Git do rozwoju swojego kodu, a są to m.in. Facebook, Reddit oraz Digg.
Dzień Wolnego Oprogramowania
To święto przypadające 17 września 2022 roku. Ustanowiony został, aby podkreślić istotną rolę oprogramowania, które może być swobodnie modyfikowane, ulepszane oraz rozpowszechniane. Z początku rozwoju komputerów była to jedyna forma programowania, jednak z czasem stało się ono własnościowe.
Internet i technologia
Czym jest system kontroli wersji?
Aby zrozumieć działanie systemu Git, warto dowiedzieć się, czym jest system kontroli wersji. Najprościej rzecz ujmując, jest to oprogramowanie śledzące zmiany w kodzie źródłowym lub dowolnego rodzaju plikach. Stosowanie systemu kontroli wersji umożliwia przywrócenie jednej z poprzednich wersji danego pliku. Takie rozwiązanie sprawdza się zarówno u programistów, jak i grafików. Załóżmy, że tworzymy złożone grafiki oraz szablony stron internetowych.
System kontroli wersji umożliwia nam powrót do dowolnej wersji danego projektu. Ponadto mamy możliwość sprawdzenia, jak powstał każdy jego element. Jeśli zaś pracujemy nad projektem w grupie, to system kontroli wersji umożliwia uzyskanie takich informacji, jak: kto, kiedy i jakie zmiany wprowadził w projekcie. Systemy kontroli wersji są podzielone na trzy grupy: lokalne, scentralizowane i rozproszone.
Lokalny system kontroli wersji przede wszystkim daje możliwość zapisu danych tylko na jednym komputerze – dostęp do różnych wersji pliku lub projektu znajduje się tylko na konkretnym urządzeniu.
Dzięki zapisowi danych nt. plików lokalny system kontroli wersji umożliwia przywrócenie dowolnej wersji pliku. Większe możliwości zapewnia korzystanie z systemów kontroli wersji scentralizowanych. Stworzono je, aby ułatwić współpracę osób pracujących nad jednym projektem. W tym modelu systemu mamy jeden serwer, na którym przechowywane są dane i pliki. Dostęp do niego mają użytkownicy pracujący nad projektem – każdy może pracować przy innym komputerze. W skrócie mamy tutaj zastosowaną architekturę klient-serwer. Administratorzy mający dostęp do serwera mogą sprawdzić kto i kiedy wprowadzał zmiany, przywracać poprzednie wersje plików itd.
Problem pojawia się w momencie, gdy dysk twardy, na którym gromadzone są dane, ulegnie uszkodzeniu. W skrajnym przypadku dostęp do projektu może zostać całkowicie utracony. Podobnie sprawa wygląda w przypadku awarii serwera – tak długo, jak trwa awaria, tak długo użytkownicy nie mogą korzystać z zapisanych wersji projektu. Wady powyższego systemu zaowocowały powstaniem rozproszonego systemu kontroli wersji i m.in. oprogramowania Git.
Rozproszony system kontroli wersji oparty jest na architekturze P2P. Każdy z użytkowników (klientów) ma dostęp i kopiuje na swój komputer całe repozytorium – jest to miejsce, gdzie przechowywane są pliki lub kod. W przypadku awarii serwera repozytorium każdego z użytkowników może zostać skopiowanego na serwer, aby przywrócić jego poprawne funkcjonowanie. Rozproszone systemy kontroli umożliwiają szybką synchronizację plików pomiędzy użytkownikami. W przypadku oprogramowania Code Co-Op można dokonać operacji za pośrednictwem wiadomości e-mail.
Co to jest Git?
Git jest to rozproszony system kontroli wersji. Został stworzony jako narzędzie wspomagające rozwój jądra systemu Linux. Obecnie klienta Git można pobrać na systemy Windows, Mac OS X oraz Linux/Unix. Proces instalacji jest szybki i intuicyjny. Funkcjonowanie systemu Git najlepiej wyjaśnić na przykładzie: jeśli projekt składa się z trzech plików, a zmienimy tylko jeden z nich, to Git zapisuje nową wersję zmienionego pliku. W przypadku niezmienionych plików system Git jedynie odsyła do ich najnowszej wersji. W ten sposób nie zapisuje na nowo tych samych wersji plików. Ponadto warto wiedzieć, że większość operacji za pomocą systemu Git odbywa się lokalnie. Całe repozytorium projektu znajduje się na dysku twardym komputera – nie musimy być w ciągłej łączności z serwerem, co zdecydowanie przyspiesza pracę. Podczas pracy z system kontroli wersji Git pliki mogą znajdować się na jednym z trzech etapów. Pliki są:
- zmodyfikowane (zmienione, ale nie zachowane w bazie danych),
- śledzone (zmodyfikowany plik jest przeznaczony do zatwierdzenia podczas najbliższej operacji commit). Operacja commit to proces wysłania do repozytorium zmian, które zaszły w danym pliku lub kodzie.
Zobacz także:
- Polacy skonstruowali ekran grubości papieru. "Wyceniani są na ponad 100 mln euro"
- Jak zrobić zrzut ekranu na komputerze, smartfonie i konsoli do gier
- Sztuczna inteligencja może zrewolucjonizować medycynę? "Komputery są w stanie diagnozować ludzi"
Zobacz wideo: Jak wyglądały początki gier komputerowych?
Autor: Adrian Adamczyk
Źródło zdjęcia głównego: Thomas Barwick/Getty Images