git status
zjistí aktuální stav repozitáře v dané větvi
git init
inicializace nového repozitáře (adresář nesmí obsahovat repozitář, aniž žádný nadřazený)
git remote add origin [url]
přidání adresy serveru se kterým chceme repozitář synchronizovat
git clone [url]
zkopírování repozitáře z url adresy (vytvoření složky, která se jmenuje jako repozitář)
git clone [url] [adresar]
zkopírování repozitáře z url adresy do vlastního adresáře
Větve jsou jeden z nejdůležitějších částí GITu, jelikož umožňují větvit kód na různé části. Používají se v následujících případech:
Téměř vždy přítomnou větví je větev master, kde by měl být uložený hlavní kód
Příkazy:
git branch [jmeno]
vytvoří novou větev (v případě, že ještě neexistuje)
git checkout [jmeno]
přepne aktuální větev na jmeno
git merge [jmeno]
spojí větev jmeno s aktuální větví
git branch -d [jmeno]
smaže větev jmeno
Štítky jsou vhodné pro rychlý přehled o stavu daného commitu. Používají se zpravidla pro verzování release kódů (např. v0.1
nebo odevzdani-1
).
git tag
zobrazí všechny štítky (tagy) v daném repozitáři
git tag [nazev]
nastaví současnému commitu štítek (tag) s označením nazev
git tag -d [nazev]
smaže štítek (tag) s označením nazev
git log
zobrazí historii změn v dané větvi
git log --follow [soubor]
zobrazí historii změn souboru soubor v dané větvi
git diff [vetev1]...[vetev2]
zobrazí změny mezi dvěmi větví vetev1 a vetev2
git show [commit]
zobrazí hlavičku daného commitu
git add [soubor]
přidá soubor(y) nebo obsah složek k přidání do repozitáře
git commit -m"zpráva"
potvrzení změn se zprávou. Zpráva by měla obsahovat souhrn změn a délka by neměla přesáhnotu 50 znaků. Možno přidat přepínač -a, který zahrne všechny modifikované soubory automaticky do commitu.
git reset [commit]
vrácení se ke stavu pod označením commit
git reset --hard
tvrdé obnovení současného commitu bez možnosti návratu
git reset --hard [commit]
tvrdé obnovení commitu bez možnosti návratu
git fetch
stáhne veškeré změny ze serveru
git merge [nazev]
spojí větev s číslem commitu nebo názvem nazev do současné větve
git pull
stáhne veškeré změny ze serveru a aktualizuje současnou větev (příkaz je kombinací git fetch
a git merge
)
git push
nahraje veškeré lokální změny ze serveru
V případě, že se potřebujete přepnout do jiné větve a máte rozdělanou práci, kterou nechcete nyní commitnout, můžete využít příkazů git stash
.
git stash
uloží Vaší práci do repozitáře a přepne se zpátky na původní commit
git stash pop
návrat k rozpracovanému projektu
git stash drop
zahození změn rozpracovaného projektu
Projekty se obvykle sestávají z několika částí, jako jsou zdrojové kódy, knihovny, případně hardware a dokumentace. Udržet všechny tyto části v jednom repozitáři by bylo neúsnosné a i nepraktické (ne každý potřebuje všechny části). Z tohoto důvodu zde existují submoduly, které se obvykle sdružují do jednoho velkého projektu. Submodul není nic jiného než vlastní repozitář umístěný uvnitř jiného repozitáře. Fyzicky v něm ovšem není, nadřazený repozitář obsahuje pouze adresu, kde se submodul nachází.
Následující příkazy pracují se submoduly:
git submodule add [url]
přidá submodul z adresy url do adresáře, kde se zrovna nacházíte a jméno složky bude jméno repozitáře
git submodule add [url] [adresar]
přidá submodul z adresy url do adresáře, kde se zrovna nacházíte a jméno složky bude mít název adresar
git submodule init
inicializuje všechny submoduly v nadřazeném repozitáře (provádí se zpravidla po klonování)
git submodule update
checkout všech submodulů do stavu commitu nadřazeného repozitáře (provádí se zpravidla po git submodule init
). Jednotlivé submoduly poté nemusí být v poslední verzi a doporučuji provést příkaz git checkout master
pro každý submodul nebo hromadně git submodule foreach git checkout master
nebo tomu obdobný příkaz
git submodule foreach [příkaz]
provede příkaz pro každý submodul v daném repozitáři (viz. předchozí příklad)