Git: Versioning

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Doplnění pojmu ''snímek''.)
(Přidány příkazy revert, reset, reflog, log,...)
Řádka 6: Řádka 6:
 
* Zde se budeme zabývat vytvářením jednotlivých verzí a jejich správou na lokálním počítači.
 
* 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]].
 
* Určitě si také budete chtít přečíst materiál o vytváření vzdálených repozitářů: [[Git: Repository]].
 
  
 
== Správa verzí ==
 
== Správa verzí ==
Řádka 12: Řádka 11:
 
* V tomto dokumentu si ukážeme příkazy, které můžete použít nezávisle na vývojovém prostředí.
 
* 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.
 
* 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 ==
 
== Historie projektu, snímky ==
Řádka 19: Řádka 17:
 
* 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ů.
 
* 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.
 
* 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í projektu ==
 
== Založení projektu ==
Řádka 30: Řádka 29:
 
  git init
 
  git init
 
* Git si v&nbsp;aktuální složce vytvoří podsložku <code>.git</code>, ve které si bude ukládat informace o&nbsp;jednotlivých verzích dokumentu.
 
* Git si v&nbsp;aktuální složce vytvoří podsložku <code>.git</code>, ve které si bude ukládat informace o&nbsp;jednotlivých verzích dokumentu.
 
  
 
== Zařazení aktuálních změn do nového snímku ==
 
== 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'') &mdash; které soubory jsou tzv. ''unstaged''.
 +
 
  git add ''soubor''
 
  git add ''soubor''
 
* Zařadí do příštího snímku jeden změněný soubor.
 
* Zařadí do příštího snímku jeden změněný soubor.
Řádka 39: Řádka 40:
 
  git add .
 
  git add .
 
* Zařadí do nové verze všechny soubory v&nbsp;aktuálním adresáři.
 
* Zařadí do nové verze všechny soubory v&nbsp;aktuálním adresáři.
 
  
 
== Vytvoření snímku projektu ==
 
== Vytvoření snímku projektu ==
 
  git commit
 
  git commit
 
* Následně je třeba zapsat název aktuálního snímku a&nbsp;popis změn, které jsme provedli.
 
* Následně je třeba zapsat název aktuálního snímku a&nbsp;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&nbsp;angličtině. ;)
 +
* Uložte soubor a&nbsp;zavřete editor.
  
 
  git commit -M "''Nazev verze bez diakritiky''"
 
  git commit -M "''Nazev verze bez diakritiky''"
Řádka 49: Řádka 53:
 
* Důsledně to ale zvažte a&nbsp;zvykněte si spíš na podrobnější popis.
 
* Důsledně to ale zvažte a&nbsp;zvykněte si spíš na podrobnější popis.
 
* Pro některé firmy je použítí <code>-M</code> považováno za porušení pravidel.
 
* Pro některé firmy je použítí <code>-M</code> považováno za porušení pravidel.
 +
 +
== Zobrazení historie ==
 +
* Každý snímek má vždy zobrazen i&nbsp;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
 +
* <code>--oneline</code>... zobrazí u&nbsp;každého snímku jen nadpis.
 +
* <code>--graph</code>... pokud máte více větví, zobrazí „graficky“ návaznost větví.
 +
 +
git reflog
 +
* Zobrazuje data z&nbsp;logu odkazů.
 +
* Kde je právě ukazatel <code>HEAD</code>.
 +
* Můžeme zobrazit posloupnost odvolaných snímků.
 +
 +
== Návrat k&nbsp;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&nbsp; ID <code>a99fcf9</code>.
 +
* Změny z&nbsp;navazujících ''commitů'' zůstanou platné, zruší se POUZE změny provedené v&nbsp;tomto jednom ''commitu''.
 +
* Vytvoří se nový commit, kde můžete vysvětlit, proč změny odstraňujete.
 +
* I&nbsp;tento ''revert-commit'' lze později odvolat.
 +
 +
git revert ''a99fcf9''..''2ef9baa''
 +
* Zruší změny, které byly provedeny v&nbsp;daném rozsahu snímků (včetně obou uvedených).
 +
* Vytvoří se nový commit, kde můžete vysvětlit, proč změny odstraňujete.
  
  
 
== Související stránky ==
 
== Související stránky ==
 
* [[Git]], [[Git: Repository]]
 
* [[Git]], [[Git: Repository]]

Verze z 27. 11. 2020, 09:40


Obsah

Git

Správa verzí

Historie projektu, snímky

Založení projektu

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
git init

Zařazení aktuálních změn do nového snímku

git status
git add soubor
git add .

Vytvoření snímku projektu

git commit
git commit -M "Nazev verze bez diakritiky"

Zobrazení historie

git log
git log --oneline --decorate --graph
git reflog

Návrat k poslednímu snímku

git reset

Odvolání změn

git revert a99fcf9
git revert a99fcf9..2ef9baa


Související stránky

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje