Git lze stáhnout z oficiální stránky git-scm.com a vybrat si příslušnou distribuci. Pro linuxové uživatele (Ubuntu a podobné distribuce) stačí git nainstalovat z příkazové řádky pomocí:
sudo apt update sudo apt install gitpozn. U Windowsové verze doporučujeme integrovat GIT do kontextové nabídky v průzkumníku. Dále zachovat konce řádků, co doporučuje instalace (desktop CRLF, server LF). Vyhnete se tím potom s problémy při kompilaci programu mezi různými platformami.
Každý poskytovatel GITích služeb umožňuje obousměrnou komunikaci se serverem z důvodu synchronizace změn. Existují dvě možnosti, kde první, méně používáná, je přes HTTP(s) protokol, která pokaždé vyžaduje zadání uživatelského jména a hesla. Druhá běžně používaná metoda je pomocí SSH klíče, která zajišťuje autentizaci se serverem bez zadání uživatelského jména a hesla. Následující příklad vytvoří dostatečně bezpečný SSH klíč pro komunikaci se serverem.
ssh-keygen -t rsa -b 4096 -C "username@fel.cvut.cz"Přepínač
-t
vybírá typ klíče (v našem případě RSA, může se použít i DSA, ed25519, … pokud jsou podporovaný) a délku 4096 bitů pomocí přepínače -b
, který zabezpečí dostatečnou robustnost klíče. Další info na webu https://ssh.com.
Jelikož autentizace pomocí SSH klíčů probíhá na obou stranách, výstupem jsou dva soubory. Prvním souborem je soukromý klíč id_rsa, který zůstává u uživatele na počítači a nikdy se nikam a nikomu nekopíruje. Jeho účelem je ověření totožnosti uživatele. Druhý soubor je id_rsa.pub, který je označován jako veřejný klíč a nahrává se na server, se kterým chceme komunikovat. Veřejný klíč slouží serveru k identifikaci konkrétního uživatel, který drží klíč soukromý. Dobrou praxí je, že každé zařízení má svůj vlastní soukromý klíč a který existuje vždy právě jeden. Soukromým klíčem se jednoznačně identifikujete u všech autorit, kterým jste dali veřejný klíč. Ty naopak je možné nahrát všude, kam chcete s daným zařízením přistupovat.
Abyste mohli repozitáře stahovat nebo i nahrávat, je třeba spárovat Vaše zařízení se serverem. To provedete tak, že se přihlásíte na stránku gitlab.fel.cvut.cz pomocí SSO. Ve Vašem profilu (vpravo nahoře) zvolte Settings a následně nalevo nabícku SSH keys. Do pole Key zadejte obsah souboru id_rsa.pub a do Title zadejte název zařízení, abyste mohli identifikovat o jaký klíč se jedná. Výhodné to je také v případě, když daný klíč nepoužíváte nebo už neexistuje a rozhodnete se promazat Vaše klíče.
Klíč otevřete na svém počítači v libovolném textovém editoru (včetně řádkových cat
, more
nebo less
) a zkopírujte do webu pomocí clipboardu.
Samotná práce s GITem není nic složitého než verzování vlastního kódu a případně synchronizace kódů mezi počítačem a serverem. Slovo “případně” tam je schválně, neboť samotný repozitář může být pouze na vlastním počítači a nemusí se nikam nahrávat na server. V případě nahrání repozitáře na server tak máte potom jistotu, že Vaše kódy budou zálohované. V případě smazání nebo poškození serveru nemusí být kódy ztraceny. Pokud máte totiž kompletní historii uloženou na vlastním počítači (do doby, kdy jste provedli poslední synchronizaci), je potom celkem jednoduché obnovit celý repozitář.
Další výhodou verzování kódu je možnost spolupráce více programátorů na jednom projektu. Zde už je potřeba ukládat kódy na server a mít alespoň jednoho správce, který bude rozhodovat jak bude výsledný kód vypadat. Jelikož dva programátoři mohou upravovat stejný kód s jiným výsledkem, zde je potom potřeba rozhodnout, který kód se použije a případně jak se upraví, aby projekt šel zkompilovat a fungoval jak má. Tomuto kroku se říká takz. merge, případně merge request, když se využívá platforma GitLab, GitHub apod.
pozn. Veškeré popisy se vztahují jak na Windows platformu, tak Linux. U Windows platformy existuje ještě grafická nadstavba, ale ta tu nebude popsána.
V případě, že jste GIT nikdy nepoužil/a, je třeba nastavit globální nastavení v podobě jména a příjmení a emailu. To se provede následujícími příkazy:
git config --global user.name "Jmeno Prijmeni" git config --global user.email "username@fel.cvut.cz"Pokud používáte již GIT a chcete specifikovat uživatele pro konkrétní repozitář, toto nastavení provedete následujícími příkazy:
cd slozka_s_repozitarem git config user.name "Jmeno Prijmeni" git config user.email "username@fel.cvut.cz"
Na začátku máte dvě možné situace, které mohou nastat:
Když neexistuje repozitář, který chcete použít nebo začínáte nový projekt, je třeba repozitář vytvořit. To se provede v příkazové řádce následujícími příkazy:
cd slozka_kde_bude_repozitar git initPokud se rozhodnete lokálně vytvořený repozitář synchronizovat se serverem (musí být nově vytvořený repozitář), bude třeba použít následující postup příkazů (doporučený postup):
cd slozka_kde_je_repozitar git remote rename origin old-origin git remote add origin git@gitlab.fel.cvut.cz: ... git push -u origin --all git push -u origin --tags
Pokud je repozitář veřejný a je nabízen např. pomocí HTTP(S)
protokolu (typicky projekty na github.com), je možné ho naklonovat následovně:
git clone https://www.github.com/...V případě privátních repozitářů je obvyklým způsobem využití
SSH
, zpravidla tak, že se na server s repozitářem uloží privátní klíč uživatele. Tento způsob budeme používat při práci s fakultním serverem gitlab.fel.cvut.cz.
Pokud má být repozitář synchronizovaný se serverem, je třeba ještě říci kde se server nachází. Je třeba nastavit tzv. remote uživatele následujícím příkazem (adresa git@gitlab.fel.cvut.cz:B192_B2B99PPC/tutorials.git se může lišit):
git remote add origin git@gitlab.fel.cvut.cz:B192_B2B99PPC/tutorials.git
Existuje mnoho možností a nástrujů, jak vizualizovat strukturu repozitáře. V následující kapitole se budeme věnovat programu gitk, který je standardně součástí každé distribuce GITu. Jeho účelem je procházet jednotlivé změny, kdo, kdy je udělal a jaké soubory se změnily. Je dovoleno pracovat na stejném repozitáři ve více lidech, poté by zde bylo vidět i rozvětvení a sloučení (merge) v jednu větev.
Program gitk lze spustit bez parametrů nebo i s parametry. Pár základních je sepsáno níže:
gitk
vizualizuje kompletní strukturu současné větve
gitk --all
vizualizuje všechny dostupné větve v repozitáři
gitk -t [tag]
vizualizuje větev do štítku tag
gitk -b [branch]
vizualizuje vizualizuje větev branch
Na následujícím obrázku znázorněno, jak vypadá příklad vizualizace tohoto repozitáře a jednotlivé části dialogu jsou popsány níže:
git checkout [ID]
Přes pravé tlačítko myši lze nastavovat vlastnosti bez použití příkazové řádky, jako je přiřazení tagu, porovnání dvou commitů apod.