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)