Git: Versioning
Z MiS
(Rozdíly mezi verzemi)
(Přidány příkazy revert, reset, reflog, log,...) |
(→Vytvoření snímku projektu: Oprava chyby - přepínač je "-m", nikoli "-M"!) |
||
(Nejsou zobrazeny 2 mezilehlé verze od 1 uživatele.) | |||
Řádka 20: | Řádka 20: | ||
* Na jednotlivé snímky se můžete pomocí tohoto kódu odkazovat. | * Na jednotlivé snímky se můžete pomocí tohoto kódu odkazovat. | ||
− | == Založení projektu == | + | == Založení lokálního projektu == |
+ | <div class="Varovani"> | ||
+ | Pokud chcete používat cloudový repozitář na GitHubu, začněte tím, že si repozitář vytvoříte a naklonujete. | ||
+ | |||
+ | Více viz: [[Git: Repository#Vytvo.C5.99en.C3.AD_repozit.C3.A1.C5.99e | Git: Repository]]. | ||
+ | </div> | ||
+ | |||
* Přesuňte se do složky, ve které bude umístěn váš projekt. V příkazovém řádku Windows můžete použít: | * Přesuňte se do složky, ve které bude umístěn váš projekt. V příkazovém řádku Windows můžete použít: | ||
rem Zvolte diskovou jednotku, na které je váš projekt | rem Zvolte diskovou jednotku, na které je váš projekt | ||
Řádka 39: | Řádka 45: | ||
git add . | git add . | ||
− | * Zařadí do nové verze všechny soubory v aktuálním adresáři. | + | * Zařadí do nové verze všechny soubory v aktuálním adresáři a všech jeho podadresářích. |
+ | |||
+ | git add -A | ||
+ | * Zařadí do příštího snímku všechny změněné soubory v celém repozitáři. | ||
== Vytvoření snímku projektu == | == Vytvoření snímku projektu == | ||
Řádka 49: | Řádka 58: | ||
* Uložte soubor a zavřete editor. | * Uložte soubor a zavřete editor. | ||
− | git commit - | + | git commit -m "''Nazev snimku bez diakritiky''" |
* Pro jednoduché projekty lze využít tuto zkrácenou syntaxi. | * Pro jednoduché projekty lze využít tuto zkrácenou syntaxi. | ||
* Důsledně to ale zvažte a zvykněte si spíš na podrobnější popis. | * Důsledně to ale zvažte a zvykněte si spíš na podrobnější popis. | ||
− | * Pro některé firmy je použítí <code>- | + | * Pro některé firmy je použítí <code>-m</code> považováno za porušení pravidel. |
== Zobrazení historie == | == Zobrazení historie == |
Aktuální verze z 30. 12. 2020, 23:45
Obsah |
Git
- Git je jedním z nejoblíbenějších verzovacích systémů současnosti.
- Více o Gitu se dozvíte na stránce Git.
- Zde se budeme zabývat vytvářením jednotlivých verzí a jejich správou na lokálním počítači.
- Určitě si také budete chtít přečíst materiál o vytváření vzdálených repozitářů: Git: Repository.
Správa verzí
- Git lze ovládat buď z příkazového řádku, bývá ale vestavěn ve většině programátorských vývojových prostředí (IDE) — například NetBeans, IntelliJ IDEA, Visual Studio,...
- V tomto dokumentu si ukážeme příkazy, které můžete použít nezávisle na vývojovém prostředí.
- Můžete je klidně použít pro správu verzí u dokumentů ve Wordu či Excelu či pro jakékoli jiné dokumenty. Nejlepší výsledky ale získáte při použití s textovými dokumenty, kde umí Git detailně sledovat změny.
Historie projektu, snímky
- Můžeme si představit, že Git historii vývoje projektu sleduje jako posloupnost jednotlivých snímků.
- Snímky vytváříme příkazem
git commit
a k vytvořenému snímku se můžeme kdykoli vrátit. - Každou ucelenou sadu změn, která náš systém o něco vylepší, bychom tedy měli zakončit vytvořením snímků.
- Zároveň je důležité u každého snímku popsat, jaké změny řešil a co se změnilo, případně na jaký problém (issue) reaguje.
- Každý snímek má vždy zobrazen i identifikační kód (hash).
- Na jednotlivé snímky se můžete pomocí tohoto kódu odkazovat.
Založení lokálního projektu
Pokud chcete používat cloudový repozitář na GitHubu, začněte tím, že si repozitář vytvoříte a naklonujete.
Více viz: Git: Repository.
- Přesuňte se do složky, ve které bude umístěn váš projekt. V příkazovém řádku Windows můžete použít:
rem Zvolte diskovou jednotku, na které je váš projekt c: rem Přesuňte se do adresáře s projektem. Například: cd c:\Users\xyz\Documents\Develop\MujProjekt
- Následně v příkazovém řádku zapište
git init
- Git si v aktuální složce vytvoří podsložku
.git
, ve které si bude ukládat informace o jednotlivých verzích dokumentu.
Zařazení aktuálních změn do nového snímku
git status
- Zobrazí, které soubory byly změněny od posledního snímku (commitu) — které soubory jsou tzv. unstaged.
git add soubor
- Zařadí do příštího snímku jeden změněný soubor.
- Můžeme totiž někdy provádět změny, které jsou jen dočasné a do dalšího snímku je umístit nechceme. (Například vložení testovacích výpisů do aplikace.)
git add .
- Zařadí do nové verze všechny soubory v aktuálním adresáři a všech jeho podadresářích.
git add -A
- Zařadí do příštího snímku všechny změněné soubory v celém repozitáři.
Vytvoření snímku projektu
git commit
- Následně je třeba zapsat název aktuálního snímku a popis změn, které jsme provedli.
- Otevře se nám nastavený textový editor.
- První řádek je nadpis, další řádky jsou popis.
- Nepoužívejte diakritiku! Nebo rovnou pište v angličtině. ;)
- Uložte soubor a zavřete editor.
git commit -m "Nazev snimku bez diakritiky"
- Pro jednoduché projekty lze využít tuto zkrácenou syntaxi.
- Důsledně to ale zvažte a zvykněte si spíš na podrobnější popis.
- Pro některé firmy je použítí
-m
považováno za porušení pravidel.
Zobrazení historie
- Každý snímek má vždy zobrazen i identifikační kód (hash).
- Na jednotlivé snímky se můžete pomocí tohoto kódu odkazovat.
git log
- Zobrazí seznam změn.
- Ve výpisu můžete listovat šipkami.
- Výpis ukončíte klávesou Q.
git log --oneline --decorate --graph
-
--oneline
... zobrazí u každého snímku jen nadpis. -
--graph
... pokud máte více větví, zobrazí „graficky“ návaznost větví.
git reflog
- Zobrazuje data z logu odkazů.
- Kde je právě ukazatel
HEAD
. - Můžeme zobrazit posloupnost odvolaných snímků.
Návrat k poslednímu snímku
git reset
- Budou zrušeny všechny změny od posledního snímku (commitu);
Odvolání změn
git revert a99fcf9
- Zruší změny, které byly provedeny ve snímku (commitu) s ID
a99fcf9
. - Změny z navazujících commitů zůstanou platné, zruší se POUZE změny provedené v tomto jednom commitu.
- Vytvoří se nový commit, kde můžete vysvětlit, proč změny odstraňujete.
- I tento revert-commit lze později odvolat.
git revert a99fcf9..2ef9baa
- Zruší změny, které byly provedeny v daném rozsahu snímků (včetně obou uvedených).
- Vytvoří se nový commit, kde můžete vysvětlit, proč změny odstraňujete.