Výcuc k práci s Gitem
Dr Radek Ošlejšek
$ git clone https://gitlab.fi.muni.cz/pb162/pb162-seminar-project.git pb162-seminar-project
$ cd pb162-seminar-project
Nyní můžete začít s projektem pracovat, např. si ho otevřít v NetBeans.
Přechod na novou iteraci (pull)
Iniciální projekt je prázdný. V průběhu semestru ale budou přibývat
jednotlivé úkoly v podobě iterací.
Na začátku každého cvičení je tedy nutné stáhnout si (pull) novou iteraci projektu následujícím příkazem
(namísto '*' v iteration-* se dosadí požadované císlo iterace):
$ git pull origin iteration-*
Mgr. Karolína Burská
Git a GitLab
Git
-
distribuovaný systém správy verzí
-
k čemu nám je?
GitLab:
-
Webová služba, která poskytuje webhosting projektu v gitu
-
http://gitlab.fi.muni.cz
-
Přihlašovací údaje - fakultní přihlašovací jméno
(obvykle ve tvaru xjmeno) a heslo
Instalace Gitu, vygenerování SSH klíče:
Práce s Gitem v PB162:
Git příkazy
git add
-
přidá specifikované soubory do stavu pro commit
git commit
-
vytvoří verzi/kontrolní bod, ke kterému se můžeme kdykoli v průběhu vývoje vrátit
-
verze existuje pouze lokálně (je nutné kód pushnout)
-
obsahuje změny z předchozí verze (předchozího commitu)
-
vždy upřesníme commit message
git push
-
nahraje lokální „commitnuté” změny do vzdáleného repozitáře (serveru - např. GitLab)
git pull
-
stáhne commity (aktualizuje) ze vzdáleného repozitáře
Další užitečné info
příkazy mají také přepínače, např:
-
git commit -m „Message”
-
git branch -b new-branch
.gitignore
-
soubor, který obsahuje seznam jmen souborů nebo adresářů, které chceme aby git ignoroval
-
lze využít i regulární výrazy
-
vhodné například pro zkompilované soubory
git pull
Složený z operací fetch a merge
fetch
-
získej nová data ze vzdáleného repozitáře
merge
-
spoj nová data s lokálními
-
může dojít ke konfliktu, kdy je nutné upřesnit, který kód (lokální nebo vzdálený) použít
řešení konfliktu:
-
git merge -strategy-option theirs
(použít vzdálený kód)
-
git merge -strategy-option ours
(použít lokální kód)
-
git mergetool
(změny určit individuálně)
-
git merge -abort
(zrušit merge)
Životní cyklus souborů v gitu
Zjištění statusu souborů v projektu nám zajistí příkaz git status
untracked
-
nesledovaný, git ho zatím „nezná”
-
stav nově vytvořeného souboru
unmodified
-
všechny změny v souboru jsou commitnuté
modified
-
soubor byl už dříve commitnutý, obsahuje ale změny oproti předchozí verzi
staged
-
připravený pro commitnutí
Vzdálené repozitáře
Můžeme mít více vzdálených repozitářů
V našem projektu - jeden k pullnutí nového zadání a jeden k vlastní práci
-
origin - hlavní repozitář s hlavní větví master
-
munijava - veřejný repozitář s větvemi se zadáním projektu
-
git remote add munijava git@gitlab.com:munijava/pb162.git
Push změn pak budeme provádět do hlavního repozitáře:
Další příkazy
git status
git log
git diff
-
zobrazí změny oproti poslednímu commitu
git reset <file>
-
používat s rozmyslem, slouží k odstranění commitů
git rm <file>
-
k odstranění souboru. Soubor ale bude k nalezení v historii, v předchozích commitech
Větve (branche)
Větve projekt rozdělují na části, mezi kterými lze přepínat
a paralelně pracovat na různých částech projektu
hlavní větev má jméno master
vytvoření větve: git branch <jméno>
přepnutí aktivní větve: git checkout <jméno>