encyklopedia.space

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:

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.

Zobacz także