Obsah

Git

Git je distribuovaný systém pro správu verzí. Slouží k ukládání historie změn souborů (převážně textových). Distribuovaný znamená, že nemusí existovat jeden centrální prvek - celá historie je k dispozici ve všech kopiích repozitáře.

Na této stránce najdete krátký přehled nejběžnějších termínů a nejčastějších příkazů (při použití příkazové řádky) pro práci se systémem git

Základní terminologie

Workflow

Získání repozitáře

Pokud ještě nemáme repozitář na našem počítači, je třeba ho naklonovat (operace clone). V případě práce s naším školním gitlab serverem doporučuji používat protokol HTTPS. V prostředí příkazové řádky se klonování vzdáleného repozitáře provádí příkazem git clone. Následující příkaz vytvoří kopii repozitáře ze zadané URL ve složce specifikované jako parametr. Parametr SLOZKA lze vynechat, v takovém případe repozitář vytvoří složku odpovídající názvu repozitáře na serveru.

git clone https://URL_VZDALENEHO_REPOZITARE SLOZKA

Všechny následující příkazy pro práci s repozitářem je pak třeba spouštět přímo uvnitř toho repozitáře. Tzn. použít například příkaz cd slozka pro přechod do složky s repozitářem.

Stav a historie repozitáře

Pokud nás zajímá, jaký je aktuální stav repozitáře, můžeme použít příkaz git status. Tento příkaz nám mimo jiné i poradí další příkazy, které je možné v dané situaci použít (v závislosti na stavu repozitáře)

git status

Pro zobrazení historie repozitáře můžeme použít příkaz git log. Ten nám umožní interaktivní procházení historie revizí. Ukončení tohoto procházení se provádí klávesou Q

git log

Případně můžeme zobrazit i zjednodušený výpis historie přidáním argumentu

git log --oneline

Commitnutí změny

Po úspěšném naklonování repozitáře již můžete provádět změny v jeho obsahu. Pokud chceme svoji změnu uložit do historie změn, provádíme tzv. commit.

Pokud chceme provést commit, musíme mít nejdřívě změněné soubory, které přidáme do commitu příkazem git add. Je to z toho důvodu, že často nechceme commitnout všechny změny naráz. Představme si, že máme upravený (a na disku uložený) soubor README.md, který chceme „commitnout“. Do commitu ho přidáme příkazem git add následovně:

git add REAMDE.md

Soubory přidané do commitu příkazem git add jsou označovány jako „staged“. Jakmile máme takto připravené soubory, je možné vytvořit commit. Commit vyžaduje, aby byl provázen věcným komentářem - tzv. commit message, která popisuje co daný commit obsahuje/aplikuje/„dělá“. Pro commitnutí souboru README.md přidaného předchozím příkazem můžeme použít například následující příkaz:

git commit -m "Change README.md file to better describe my project"

Pokud vynecháme parametr -m s commit zprávou, otevře se výchozí textový editor, který bude čekat na napsání její napsání. Po uložení a zavření editoru typicky dojde ke commitu.

První commit vás může typicky upozornit na absenci uživatelskcýh údajů (jméno a email), které později slouží k identifikaci. Stačí jen pozorně následovat pokyny, které vám git popíše ve výstupu příkazu commit.

Synchronizace (push, pull)

Jakmile máme „commitnuté“ změny, tak je často chceme nahrát na vzdálený repozitář jako je github/gitlab server. Během klonování se informace o tomto vzdáleném repozitáři ukládá ve vaší lokální kopii a nazývá se typicky „origin“ (původ). Pro nahrání našich commitů používáme příkaz git push. Tato operace/příkaz vezme naše commity, které doposud nejsou ve vzdáleném repozitáři a odešle je. Pozor, jen dokončené commity. Lokální upravené soubory se neberou v potaz. Příklad:

git push

Případně

git push origin master

Pokud chceme naopak stáhnout změny, které nemáme v naší lokální kopii repozitáře, používáme příkaz git pull, který je prakticky opakem příkazu push. Např.: Pokud jsem udělal doma commit + push jako v předchozích ukázkách a chci mít tyto změny k dispozici i ve škole. Je třeba jako první věc ve své kopii repozitáře na školním PC provést příkaz git pull, který stáhne nové commity.

git pull