Git

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(git checkout není pro odstraňování změn, na to je revert.)
(.gitignore: Přidán postup pro odstranění ignorovaných souborů z remote.)
 
(Není zobrazeno 11 mezilehlých verzí od 1 uživatele.)
Řádka 1: Řádka 1:
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Softwarové inženýrství]][[Category:Git]]
+
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Softwarové inženýrství]][[Category:Git]][[Category:Řízení projektů]]
  
 
== Git ==
 
== Git ==
Řádka 10: Řádka 10:
  
 
<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>
 
<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>
 +
 +
== Ovládání a pojmy ==
 +
; Způsob ovládání
 +
* Git lze ovládat
 +
** 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.
  
 
== Instalace ==
 
== Instalace ==
Řádka 15: Řádka 27:
 
* Doporučujeme zvolit si při instalaci vhodný textový editor pro psaní komentářů.
 
* 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.
 
*: 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]].
 
* Více o&nbsp;instalaci a&nbsp;úvodní konfiguraci: [[Git: Instalace]].
  
== Správa verzí ==
+
== Vytvoření repozitáře ==
* Git lze ovládat
+
* 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.)
** z&nbsp;příkazového řádku,
+
* Vygenerujte si klíč pro SSH přístup pomocí ''Git Bash'':
** bývá integrován do vývojových prostředí (IDE) &mdash; NetBeans, IntelliJ IDEA, Visual Studio Code, Visual Studio,...
+
ssh-keygen -t rsa
 +
* Nahrajte veřejný klíč do svého účtu na [https://www.github.com Github.com]: ''Settings &rarr; SSH and GPG keys''
  
; Založení projektu v&nbsp;příkazovém řádku
+
* Vytvoření lokální kopie vzdáleného repozitáře v&nbsp;aktuální složce:
  git init
+
  git clone ''git@github.com:''username''/''repository-name''
; Zařazení aktuálních změn dokumentu do snímku a&nbsp;vytvoření snímku
+
* Více viz [[Git: Repository]].
 +
 
 +
== Správa verzí ==
 +
; Zjištění stavu lokálního repozitáře
 
  git status
 
  git status
 +
; Zařazení aktuálních změn v&nbsp;projektu do snímku
 
  git add soubor
 
  git add soubor
 
  git add .
 
  git add .
 +
git add -A
 +
; Vytvoření snímku
 
  git commit
 
  git commit
 
; Zobrazení historie
 
; Zobrazení historie
Řádka 34: Řádka 60:
 
* Ukonči klávesou ''Q''
 
* Ukonči klávesou ''Q''
 
  git log --oneline --decorate --graph
 
  git log --oneline --decorate --graph
; Odvolání změn
+
; Odvolání změn z&nbsp;konkrétního snímku (commitu)
 
  git revert a99fcf9
 
  git revert a99fcf9
 +
 
* Více viz [[Git: Versioning]].
 
* Více viz [[Git: Versioning]].
  
== Vzdálený repozitář (GitHub) ==
+
== Práce se vzdáleným repozitářem (GitHub) ==
* GitHub je veřejný server, kde si můžete ukládat aktuální verze svého projektu.
+
; Aktualizace lokálního repozitáře
* Váš Git umí stáhnout z&nbsp;GitHubu aktuální verzi a&nbsp;posléze nahrát zpět provedené změny.
+
git pull
* Obdobných serverů existuje více, GitHub patří k&nbsp;nejznámnějším.
+
* Stažení změn z&nbsp;repozitáře &mdash; změny mohli provést ostatní vývojáři
  
; Postup
+
; Následně pracujte v&nbsp;lokální repozitáři
* Vytvořte si účet na serveru [https://www.github.com Github.com] (pokud už nemáte) a&nbsp;založte repozitář.
+
* Vytvoření lokální kopie vzdáleného repozitáře v&nbsp;aktuální složce:
+
git clone ''https''://github.com/''username''/''repository-name''
+
* Stažení změn aktuálního kódu z&nbsp;repozitáře
+
git pull
+
* Následně pracujte v&nbsp;lokální repozitáři
+
 
  ...
 
  ...
 
  git add .
 
  git add .
 
  git commit
 
  git commit
* Zkontrolujte změny, které mezitím v&nbsp;repozitáři mohli provést vaši kolegové. Poté verzi odešlete do repozitáře:
+
 
 +
; Odeslání změn z lokálního do vzdáleného repozitáře
 
  git pull
 
  git pull
 
  git push
 
  git push
 +
 
* Více viz [[Git: Repository]].
 
* Více viz [[Git: Repository]].
  
 
== Větvení ==
 
== Větvení ==
* Při opravě chyb nebo přidání nových funkcí musíte obvykle kód dočasně „rozbít“ a&nbsp;poté doplnit požadované změny.
+
* 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).
 
* 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 v&nbsp;původní neporušené verzi.
+
* 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.
 
* Pamatujte si: 1 změna = 1 větev.
 +
 
; Přehled větví
 
; Přehled větví
 
  git branch
 
  git branch
; Vytvoření větve
+
 
  git branch ''nazev-nove-vetve''
+
; Vytvoření větve a&nbsp;přechod do ní
; Spojení druhé větve s&nbsp;main (přepneme se do ''main'' a&nbsp;obsah druhé větve připojíme do ''main'')
+
  git branch ''nazev_nove_vetve''
  git checkout main
+
git checkout ''nazev_nove_vetve''
  git merge ''nazev-druhe-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]]
 
* 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 ==
 
* Markdown je hypertextový značkovací jazyk, který se používá pro psaní dokumentace v&nbsp;Gitu.
 
* Markdown je hypertextový značkovací jazyk, který se používá pro psaní dokumentace v&nbsp;Gitu.
 
* Více na stránce [[Markdown]].
 
* 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 ==
 
== Dotazy a&nbsp;problémy ==
Řádka 80: Řádka 132:
  
 
== Zdroje ==
 
== Zdroje ==
; Kurz na Learn2Code.cz
+
* Rychlý videokurz: [https://www.learn2code.cz/kurzy/git-a-github Learn2Code.cz &rarr; Git a&nbsp;GitHub]
* [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