Co to jest system kontroli wersji – Git?

, Czas czytania: 5:00 min.

Co to system kontroli git

Git jest najpopularniejszym systemem kontroli wersji używanym przez programistów. W poniższym wpisie dowiesz się jak doszło do powstania Git’a oraz w jaki sposób zdobył popularność.

Spis treści:

Co to jest Git? – definicja

Jest to system kontroli wersji, który śledzi wszystkie zmiany dokonywane na pliku (lub plikach) i umożliwia przywołanie dowolnej wcześniejszej wersji. Git jest rozproszonym system kontroli wersji, a zatem klienci nie dostają dostępu jedynie do najnowszych wersji plików, ale w pełni kopiują całe repozytorium. Każdy może się zorientować, co robią inni uczestnicy projektu. Administratorzy mają dokładną kontrolę nad uprawnieniami poszczególnych użytkowników.

Powstanie Git’a

System kontroli wersji Git powstał w 2005r. Został on stworzony przez twórcę Linuxa, czyli Linusa Torvaldsa. Szukał on pomysłu na stworzenie systemu podobnego do BitKeeper, jednak żadne z dostępnych rozwiązań na rynku nie przypadło mu do gustu. Postawił więc napisać własny system kontroli wersji.

Główne założenia nowego systemu kontroli wersji:

  • szybkość
  • silne wsparcie dla programowania nieliniowego – jednoczesna praca w wielu gałęziach
  • prosta konstrukcja
  • efektywność obsługiwania dużych projektów np. jądro Linuxa
  • całkowicie rozproszony

W 2008r. powstał GitHub, serwis do hostowania repozytoriów Git’a, który również przyczynił się do popularności Git’a. Kiedy GitHub ogłosił, że hosting kodu dla projektów open source będzie darmowy, bardzo dużo osób zaczęło go używać do swoich prywatnych projektów. Z czasem ta popularność rozprzestrzeniła się również dla projektów komercyjnych. W chwili obecnej GitHub ma 36 milionów użytkowników na całym świecie i znajduje się na nim ponad 100 milionów repozytoriów.

Skąd nazwa Git?

Git z słownika angielskiego oznacza osobę nieprzyjemna. Twórca Git’a zażartował kiedyś, że:

„Jestem egoistycznym dupkiem i nazywam wszystkie moje projekty po sobie. Najpierw był „Linux” teraz „git”.”

Dodatkowo plik README projektu Git zawiera taki wpis:

„The stupid content trucker”

Jak działa Git? – Możliwości

Git traktuje dane podobnie jak zestaw migawek małego systemu plików, to znaczy tworzy obraz przedstawiający to jak wyglądają wszystkie pliki w danym momencie i przechowuje referencję do tej migawki. Jeśli dany plik nie został zmieniony, Git nie zapisuje ponownie tego pliku, a tylko referencję do jego poprzedniej, identycznej wersji. Większość operacji w Git do działania wymaga jedynie dostępu do lokalnych plików i zasobów.

Możliwości:

  • Rozproszony model pracy
  • Wsparcie dla nieliniowego programowania (branch’e)
  • Wydajny w przypadku dużych projektów
  • Publikacja repozytorium (git://, http(s)://, ssh://)
  • Adresowanie przez zawartość (SHA-1)
  • Praca lokalna bez połączenia z repozytorium
  • Większość operacji nie wymaga połączenia z repozytorium

Modele pracy:

modele pracy git modele pracy git cd

Kilka słów o terminologii Git’a

  • Branch – równoległa gałąź projektu rozwijana oddzielnie od głównej
  • Tag – marker konkretnej wersji (rewizji w SVN’ie) projektu
  • Working Dir – katalog roboczy, na którym pracujemy
  • Index – rodzaj “cache”, czyli miejsca gdzie trzymane są zmiany do commita
  • Master Branch – główny branch, z którym łączymy (merge) nasze zmiany przed wysłaniem do zdalnego repozytorium

Obiekty Git’a:

  • Commit – wskazuje na tree oraz ojca, zawiera przykładowo takie informacje jak autor, data i treść wiadomości
  • Tree – reprezentuje stan pojedynczego katalogu (lista obiektów blob oraz zagnieżdżonych obiektów tree)
  • Blob – zawiera zawartość pliku bez żadnej dodatkowej struktury
  • Tag – wskazuje na konkretny commit oraz zawiera opis taga

Przykładowe operacje:

Nazwa

Uzasadnienie

git clone

Pobiera zdalne repozytorium do podanego folderu

git fetch

Pobiera obiekty i wskaźniki z innego repozytorium

git pull

Pobiera i integruje obiekty i wskaźniki z innego repozytorium

git push

Aktualizuje zdalne repozytorium o wskaźniki i powiązane obiekty

git init

Stworzenie nowego repozytorium

git add

Dodanie zawartości pliku do index’u

git rm

Usuwa plik z index’u

git mv

Przenosi plik

git status

Przekazuje status katalogu roboczego i poczekalni

git config

Pobiera i ustawia opcje globalne Git’a

git commit

Zapisuje zmiany do repozytorium lokalnego

git log

Wysiwtla logi commitów

git show

Wyświetla obiekt

git pull

Wywołuje polecenia fetch i merge

git branch

Do zarżadzania branch’ami

git checkout

Przełączenie się między branch’ami

git merge

Łączy podane branch’e

git rebase

Zmienia punkt startu dla branch’a

git reset

Przywraca stan katalogu roboczego

git stash

Zapisuje/odczytuje zmiany z przestrzeni tymczasowej

git gc

Porządkowanie i optymalizacja repozytorium

 

Struktury zmian:

struktury zmian git

Git w praktyce

Git’a można się nauczyć w praktyce poprzez samouczek na stronie:

git w praktyce git w praktyce cd

źródło: learngitbranching.js.org

Autorem tego wspaniałego interaktywnego samouczka jest Peter Cottle. Nauczy Cię wszystkich niezbędnych umiejętności związanych z rozgałęzianiem bezpośrednio w przeglądarce. Wprowadza rok po kroku w każdą koncepcje i polecenie Git. Samouczek zawiera wiele poziomów trudności, na których nauczysz się stopniowo potrzebnych poleceń do codziennego stosowania kontroli wersji.

Podsumowanie wiadomości

Git’a można całkowicie obsługiwać z poziomu konsoli, ale powstają cały czas programy wspomagające prace na tym systemie. Git jest najpopularniejszym systemem kontroli wersji na świecie. Największą cegiełkę do sukcesu dołożył serwis Github. Ludzie chcieli dzielić się swoimi projektami, a Github im to udostępnił. Git opanował świat programistyczny i nic nie wskazuje na to, że w najbliższym czasie się coś zmieni.

TAGI:

Zostaw komentarz do artykułu: Co to jest system kontroli wersji – Git?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Bartek Candyweb

Programuje, śpiewa i gra - istny człowiek orkiestra:)

Ostatnie artykuły

Zainteresowała Cię oferta?

Kompleksowa oferta

Kliknij po bezpłatną wycenę

Wyceń projekt