Git

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Připraven text o Markdownu.)
 
(.gitignore: Přidán postup pro odstranění ignorovaných souborů z remote.)
 
(Není zobrazeno 29 mezilehlých verzí od 1 uživatele.)
Řádka 1: Řádka 1:
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Softwarové inženýrství]]
+
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Softwarové inženýrství]][[Category:Git]][[Category:Řízení projektů]]
  
 
== Git ==
 
== Git ==
 +
* Git je jedním z nejoblíbenějších verzovacích systémů současnosti.
 +
* Jedná se o aplikaci, která umí:
 +
** sledovat změny v souborech,
 +
** ukládat průběžné verze dokumentů a připojovat k nim komentáře,
 +
** vracet se k předchozím verzím.
 +
* Typicky se využívá pro správu zdrojového kódu projektu, ale lze ji využít i k sledování verzí libovolného dokumentu.
  
== GitHub ==
+
<div class="Poznamka">Tato stránka shrnuje základní příkazy a&nbsp;koncepty pro práci s&nbsp;Gitem. U&nbsp;každé akce je zároveň odkaz na stránku, kde si můžete přečíst podrobnější vysvětlení.</div>
  
== Markdown ==
+
== Ovládání a pojmy ==
* Markdown je hypertextový značkovací jazyk.
+
; Způsob ovládání
* Na rozdíl od HTML je určen k&nbsp;tomu, aby se dobře zapisoval na klávesnici a&nbsp;aby hyptertextové značky byly co nejúspornější.
+
* Git lze ovládat
* Je určen pro zápis textových dokumentů s&nbsp;formátováním, typicky takových, které půjdou zobrazit v&nbsp;podobě webové stránky.
+
** z&nbsp;příkazového řádku,  
 +
** bývá integrován do vývojových prostředí (IDE) &mdash; NetBeans, IntelliJ IDEA, Visual Studio Code, Visual Studio,...
 +
** existují také podpůrné nástroje pro práci v&nbsp;grafickém uživatelském prostředí.
  
 +
; GitHub
 +
* GitHub je veřejný server, kde si můžete vytvořit repozitář a&nbsp;sdílet se spolupracovníky zdrojový kód svého projektu.
 +
* Váš Git umí stáhnout z&nbsp;GitHubu aktuální verzi a&nbsp;posléze nahrát zpět provedené změny.
 +
* Obdobných serverů existuje více (GitLab,...), GitHub patří k&nbsp;nejznámnějším.
  
=== Příklad dokumentu ===
+
== Instalace ==
<div class="Priklad">
+
* Git nainstalujete jako běžnou aplikaci ze stránek: [https://git-scm.com/downloads Git-scm.com]
; Příklad dokumentu v&nbsp; Markdownu
+
* Doporučujeme zvolit si při instalaci vhodný textový editor pro psaní komentářů.
 +
*: Výchozí volbou je editor <code>vim</code>, známý z&nbsp;unixových systémů. Jeho ovládání ale pro většinu uživatelů Windows není příliš přívětivé &mdash; aspoň než si zvyknete.
 +
*: Dodatečně lze editor změnit:
 +
*: (Dosaďte cestu ke svému oblíbenému textovému editoru, zdvojte všechna zpětná lomítka &mdash; zde používáme Poznámkový blok)
 +
git config --system core.editor "C:\\WINDOWS\\system32\\notepad.exe"
 +
* Nastavte git:
 +
git config --global user.name "Jméno Příjmení"
 +
git config --global user.email "tvuj_email@gmail.com"
 +
git config --global core.autocrlf false
 +
* Více o&nbsp;instalaci a&nbsp;úvodní konfiguraci: [[Git: Instalace]].
  
# Zadání projektu &mdash; Evidence docházky
+
== Vytvoření repozitáře ==
 
+
* Vytvořte si účet na serveru [https://www.github.com Github.com] (pokud už nemáte) a&nbsp;založte repozitář. (Můžete použít také jiný server.)
## Úvod
+
* Vygenerujte si klíč pro SSH přístup pomocí ''Git Bash'':
 
+
ssh-keygen -t rsa
Vytvoříme aplikaci pro evidenci docházky do kroužku.
+
* Nahrajte veřejný klíč do svého účtu na [https://www.github.com Github.com]: ''Settings &rarr; SSH and GPG keys''
 
+
Aplikace bude umět:
+
1. Vytvořit termín hodiny/schůzky/setkání.
+
2. Zobrazit seznam přihlášených do kroužku.
+
 
+
## Požadavky
+
 
+
Dále musí aplikace splňovat následující požadavky:
+
- Přístupnost kdekoli (tělocvična, třída).
+
    - Musí běžet i&nbsp;na mobilních zařízeních.
+
    - Požadavek dostupnosti Wi-Fi je akceptovatelný.
+
- Snadné ovládání pro člověka, který není zběhlý v&nbsp;IT.
+
</div>
+
  
 +
* Vytvoření lokální kopie vzdáleného repozitáře v&nbsp;aktuální složce:
 +
git clone ''git@github.com:''username''/''repository-name''
 +
* Více viz [[Git: Repository]].
  
=== Základy syntaxe ===
+
== Správa verzí ==
* Nadpisy různých úrovní
+
; Zjištění stavu lokálního repozitáře
** Uvozujeme znakem mřížka (<code>#</code>).
+
git status
** Počet znaků mřížka udává úroveň nadpisu.
+
; Zařazení aktuálních změn v&nbsp;projektu do snímku
* Seznamy s&nbsp;odrážkami
+
git add soubor
** Na začátku řádku uvedete pomlčku (<code>-</code>).
+
git add .
** Pro vnořené seznamy uveďte tabulátor a&nbsp;pak až pomlčku.
+
git add -A
* Číslované seznamy
+
; Vytvoření snímku
** První řádek začíná znaky jedničkou a&nbsp;tečkou (<code>1.</code>).
+
git commit
** Další body seznamu pak libovolným číslem, následovaným tečkou.
+
; Zobrazení historie
** Body v&nbsp;rámci jednoho seznamu se vždy přečíslují od jedničky dál.
+
git reflog
 +
git log
 +
* Ukonči klávesou ''Q''
 +
git log --oneline --decorate --graph
 +
; Odvolání změn z&nbsp;konkrétního snímku (commitu)
 +
git revert a99fcf9
 +
 
 +
* Více viz [[Git: Versioning]].
 +
 
 +
== Práce se vzdáleným repozitářem (GitHub) ==
 +
; Aktualizace lokálního repozitáře
 +
git pull
 +
* Stažení změn z&nbsp;repozitáře &mdash; změny mohli provést ostatní vývojáři
 +
 
 +
; Následně pracujte v&nbsp;lokální repozitáři
 +
...
 +
git add .
 +
git commit
 +
 
 +
; Odeslání změn z lokálního do vzdáleného repozitáře
 +
git pull
 +
git push
 +
 
 +
* Více viz [[Git: Repository]].
 +
 
 +
== Větvení ==
 +
* Při opravě chyb nebo přidání nových funkcí musíte obvykle kód dočasně „rozbít“, když začnete zapracovávat požadované změny.
 +
* Pokud s&nbsp;repozitářem pracuje více lidí, je vhodné tyto změny vyřešit v&nbsp;samostatné větvi (branch).
 +
* Ostatní tak mají kód stále k&nbsp;dispozici projekt v&nbsp;původní neporušené verzi.
 +
* Pamatujte si: 1 změna = 1 větev.
 +
 
 +
; Přehled větví
 +
git branch
 +
 
 +
; Vytvoření větve a&nbsp;přechod do ní
 +
git branch ''nazev_nove_vetve''
 +
git checkout ''nazev_nove_vetve''
 +
 
 +
; Odeslání změn z&nbsp;větve ''vetev_se_zmenami'' do větve ''main''
 +
git checkout ''vetev_se_zmenami''
 +
git rebase -i ''HASH''
 +
git rebase --continue
 +
git checkout ''main''
 +
git pull
 +
git merge ''vetev_se_zmenami''
 +
 
 +
* Více viz [[Git: Branch]]
 +
 
 +
== .gitignore ==
 +
* Pokud pracujete ve vývojovém prostředí (IDE), není vhodné ukládat do repozitáře veškerá nastavení nebo přeložené výsledky, které mohou být velké.
 +
* Do souboru <code>.gitignore</code> v&nbsp;repozitáři můžete zapsat soubory, které se budou při nahrávání do repozitáře ignorovat.
 +
* Vzorové soubory <code>.gitignore</code> si lze nechat vygenerovat:
 +
** Jděte například na: [https://www.gitignore.io GitIgnore.io].
 +
** Zadejte název vývojového prostředí, které používáte.
 +
** Vygenerovaný text uložte do souboru <code>.gitignore</code> v&nbsp;kořenovém adresáři vašeho repozitáře s&nbsp;projektem.
 +
* Odstranění ignorovaných souborů ze vzdáleného adresáře, pokud jste je předtím již nahráli (v&nbsp;příkazu odstraňujeme soubory ''Thumbs.db'' ze všech adresářů):
 +
git rm --cached **/Thumbs.db
 +
git add **/Thumbs.db
 +
git commit -m "Odstraněny ignorované soubory Thumbs.db"
 +
git push
 +
 
 +
== Markdown ==
 +
* Markdown je hypertextový značkovací jazyk, který se používá pro psaní dokumentace v&nbsp;Gitu.
 +
* Více na stránce [[Markdown]].
 +
 
 +
== GitHub ==
 +
* Typy účtů na GitHubu
 +
** Osobní účet: zdarma, neomezený počet soukromých i&nbsp;veřejných repozitářů.
 +
** Firemní účet: administrátoři mohou spravovat oprávnění jednotlivých vývojářů k&nbsp;firemním projektům.
 +
** Enterprise účet: centrální správa několika organizací.
 +
* Lze pracovat s&nbsp;veřejným serverem, nebo lze vytvořit firemní server, na kterém budou repozitáře firmy a&nbps;který bude plně ve správě firmy.
  
 +
== Dotazy a&nbsp;problémy ==
 +
* Některé běžné dotazy a&nbsp;problémy jsou vysvětleny na stránce [[Git: FAQ]].
  
=== Popis syntaxe podrobněji ===
+
== Zdroje ==
* [https://www.markdownguide.org/basic-syntax/ Základní syntaxe (&rarr; MarkdownGuide.org)]
+
* Rychlý videokurz: [https://www.learn2code.cz/kurzy/git-a-github Learn2Code.cz &rarr; Git a&nbsp;GitHub]
 +
* Lokální práce s Gitem, analogie s fotoalbem: [https://www.freecodecamp.org/news/git-the-laymans-guide-to-understanding-the-core-concepts/ FreeCodeCamp.org &rarr; Git &mdash; Core concepts]

Aktuální verze z 12. 10. 2022, 06:03


Obsah

Git

Tato stránka shrnuje základní příkazy a koncepty pro práci s Gitem. U každé akce je zároveň odkaz na stránku, kde si můžete přečíst podrobnější vysvětlení.

Ovládání a pojmy

Způsob ovládání
GitHub

Instalace

git config --system core.editor "C:\\WINDOWS\\system32\\notepad.exe"
git config --global user.name "Jméno Příjmení"
git config --global user.email "tvuj_email@gmail.com"
git config --global core.autocrlf false

Vytvoření repozitáře

ssh-keygen -t rsa
git clone git@github.com:username/repository-name

Správa verzí

Zjištění stavu lokálního repozitáře
git status
Zařazení aktuálních změn v projektu do snímku
git add soubor
git add .
git add -A
Vytvoření snímku
git commit
Zobrazení historie
git reflog
git log
git log --oneline --decorate --graph
Odvolání změn z konkrétního snímku (commitu)
git revert a99fcf9

Práce se vzdáleným repozitářem (GitHub)

Aktualizace lokálního repozitáře
git pull
Následně pracujte v lokální repozitáři
...
git add .
git commit
Odeslání změn z lokálního do vzdáleného repozitáře
git pull
git push

Větvení

Přehled větví
git branch
Vytvoření větve a přechod do ní
git branch nazev_nove_vetve
git checkout nazev_nove_vetve
Odeslání změn z větve vetev_se_zmenami do větve main
git checkout vetev_se_zmenami
git rebase -i HASH
git rebase --continue
git checkout main
git pull
git merge vetev_se_zmenami

.gitignore

git rm --cached **/Thumbs.db
git add **/Thumbs.db
git commit -m "Odstraněny ignorované soubory Thumbs.db"
git push

Markdown

GitHub

Dotazy a problémy

Zdroje

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