GIT – system kontroli wersji stworzony do rozwoju jądra Linuxa. Narzędzie stało się na tyle dobre, że aktualnie jest nieodłącznym elementem rozwoju oprogramowania przez zespoły programistów Najpopularniejsze narzędzia, na których możemy tworzyć nasze repozytoria to m.in GitHub, Bitbucket oraz GitLab.

Z Git’a można korzystam w dwojaki sposób:

  • graficzne gui – zazwyczaj nie musimy znać komend, ponieważ wszystko jesteśmy w stanie wyklikać, a cały workflow mamy podawany automatycznie. Moim ulubionym jest gitkraken.
  • linia komend – całe narzędzie obsługujemy z linii komend (cmd, terminal linuxowy etc), i musimy pamiętać trochę więcej szczegółów.

Obsługa Git’a  nie jest trudna, maksymalnie w godzinę ogarniemy podstawowe komendy, z których korzystamy najczęściej.

Utwórz nowe repozytorium

Utwórz nowy katalog, lub wejdź do istniejącego i wykonaj polecenie:

git init

aby zainicjować nowe repozytorium git.

Pobierz repozytorium

Utwórz kopię roboczą lokalnego repozytorium z polecenia:

git clone /ścieżka/do/repozytorium

Jeśli chcesz pobrać go z serwera (github np.) to wykonaj polecenie:

git clone https://github.com/adres-repozytorium

Workflow git’a

Twoje repozytorium składa się z trzech podstawowych ‘drzew’:

  • katalog roboczy – przechowuje bieżące pliki
  • index – działa jak przechowalnia
  • head – wskazuje na ostatni utworzony commit

Dodanie pliku i commita

Dodane zmiany w pliku / plikach robimy na dwa sposoby:

git status
git add <filename> git add *
git commit -m "treść commita"
git commit -am "teść commita"
git log

Git status wskaże na pliki, w których nastąpiła zmiana. Git add <filename> doda na pojedynczy plik, git add * doda nam wszystkie zmienione pliki do ‘index’. Git commit -m ‘tresc’ wprowadza commit do ‘head’.  Gdy wykonamy git log to zobaczymy wprowadzone zmiany.

Drugim, krótszym sposobem jest wykonanie komendy:

git commit -a -m 'treść commita'

Komenda jednocześnie dodaje pliki i dodaje nasz commit.

Wysyłanie zmian

Twoje zmiany znajdują się tylko w twoim lokalnym repozytorium, aby wysłać je do zdalnego repozytorium wykonaj polecenie:

git push origin master

Master może zostać zmieniony na gałąź, do której zmiany wysyłasz.

Jeśli nie sklonowałeś sobie repozytorium, a chcesz wysłać zmiany na zdalne repozytorium to musisz wykonać polecenie:

git remote add origin <server>

Teraz możesz wysyłać zmiany bezpośrednio na serwer.

Branching

Gałęzie to odizolowane od siebie fragmenty rozwijanego kodu, np. branch logowanie, rejestracja etc. Gałąź master jest domyślną gałęzią i do niej wysyłamy końcowe i działające wersje kodu, które potem lądują na produkcji.

Tworzenie nowego brancha:

git branch <branch_name>

Przełączanie się między branchami:

git checkout <branch_name>

Usuwanie brancha:

git branch -d <branch_name>

Aktualizacja i scalanie:

Aby zaktualizować repozytorium do ostatniego commita wykonaj polecenie:

git pull

Jeśli chcesz scalić jakąś gałąź (branch) z inną gałęzią, np. masterem to wykonaj polecenie:

git checkout master
git merge <branch_name>

Czyli nasz branch_name scaliliśmy z masterem.

Tagowanie

Tagowania używa się najczęściej do opisywania wersji oprogramowania. By wykonać tag wpisz komendę:

git tag 1.0.0 xxxxxxxxxx

Te 10 x to 10 znaków ostatniego commita, do jakiego odwołuje się nasz tag.

Log

Za pomocą komendy log sprawdzamy wszystkie commity jakie zostały wprowadzone w danej gałęzi. Komenda:

git log

Wycofywanie lokalnych zmian

Jeśli coś pomieszasz to możesz wycofać swoje zmiany poprzez wklepanie komendy:

git checkout -- <filename>

Ta komenda zastąpi wycofaną zmianę ostatnią zawartością ‘head’. Jeśli chcesz porzucić wszystkie lokalne zmiany i commity pobierz ostatnią historię z serwera i ustaw na odpowiednią gałąź.

git fetch origin
git reset --hard origin/master

Pomoc

Podstawy gita – https://git-scm.com/book/pl/v1/Podstawy-Gita