Git
Git – rozproszony system kontroli wersji, który umożliwia zarządzanie historią zmian w plikach projektów programistycznych oraz innych rodzajach zasobów cyfrowych. Został stworzony w 2005 roku przez Linusa Torvaldsa jako alternatywa dla dotychczasowego systemu BitKeeper, używanego przy rozwoju jądra Linux.
Historia i powstanie
Początkowo Git miał służyć wyłącznie potrzebom projektu Linux. Pierwsza publiczna wersja pojawiła się w kwietniu 2005 roku. Od tego czasu system rozwija się dynamicznie, stając się najpopularniejszym systemem kontroli wersji na świecie.
Podstawowe założenia projektowe
- Wydajność – operacje takie jak commit, branch, merge i log są wykonywane lokalnie i są bardzo szybkie.
- Rozproszoność – każdy klon repozytorium zawiera pełną historię, co umożliwia pracę offline.
- Integralność danych – wszystkie wersje są identyfikowane przy pomocy kryptograficznego hasha SHA‑1 (od wersji 2.29 także SHA‑256), co zapewnia niezmienność i bezpieczeństwo.
- Wsparcie dla rozgałęzień – gałęzie (branches) w Git są lekkie i łatwe w obsłudze, co sprzyja pracom nad wieloma funkcjonalnościami równocześnie.
Podstawowe pojęcia
- Repozytorium
- Centralne miejsce przechowujące wszystkie wersje plików. Może być lokalne lub udostępniane za pośrednictwem serwerów, takich jak GitHub czy GitLab.
- Commit
- Jednostka zapisu zmian, zawierająca opis, autora, datę oraz wskaźnik do poprzedniego commitu.
- Branch (gałąź)
- Odgałęzienie historii, umożliwiające niezależną pracę nad nową funkcjonalnością.
- Merge
- Operacja łączenia dwóch gałęzi w jedną, z możliwością rozwiązywania konfliktów.
- Remote (zdalny)
- Odwołanie do zewnętrznego repozytorium, z którym można synchronizować zmiany (np.
origin).
Licencja
Git jest rozpowszechniany na licencji GNU GPL v2 z dodatkiem “Linux kernel exception”, co czyni go wolnym oprogramowaniem open source.
Zastosowania
Git jest używany nie tylko w projektach open source, ale także w licznych przedsiębiorstwach, w tym w sektorach finansowym, telekomunikacyjnym i medycznym. Pozwala na:
- Śledzenie zmian w kodzie źródłowym.
- Współpracę zespołową przy użyciu modeli fork‑and‑pull.
- Automatyzację procesów CI/CD dzięki integracji z narzędziami takimi jak Jenkins czy Travis CI.
Popularne interfejsy i narzędzia
Poza wierszem poleceń, dostępne są graficzne front‑endy i wtyczki, między innymi:
- Sourcetree – aplikacja firmy Atlassian.
- GitKraken – klient z intuicyjnym UI.
- Integracje w środowiskach IDE, np. IntelliJ IDEA, Visual Studio Code.
Przykładowe polecenia
git init # inicjalizacja nowego repozytorium
git clone <url> # sklonowanie istniejącego repozytorium
git add <plik> # oznaczenie pliku do commitu
git commit -m "Komunikat" # zapis zmian w historii
git branch nowa-gałąź # utworzenie nowej gałęzi
git checkout nowa-gałąź # przełączenie na nową gałąź
git merge nowa-gałąź # scalanie gałęzi
git push origin master # wypchnięcie zmian do zdalnego repozytorium
git pull # pobranie i scalenie zmian ze zdalnego repozytorium
Wpływ na ekosystem programowanie
Dzięki swojej wydajności i elastyczności Git stał się de facto standardem w zarządzaniu kodem. Znacząco przyczynił się do popularyzacji metodologii ciągłej integracji oraz DevOps, umożliwiając szybkie iteracje i automatyzację procesów wytwórczych.