Git
Z MiS
(Rozdíly mezi verzemi)
(Přidán dotaz na vytvoření složky a --set-upstream.) |
(→.gitignore: Přidán postup pro odstranění ignorovaných souborů z remote.) |
||
(Není zobrazeno 25 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 == | ||
Řádka 9: | Řádka 9: | ||
* 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. | * 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. | ||
− | === | + | <div class="Poznamka">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í.</div> |
+ | |||
+ | == Ovládání a pojmy == | ||
+ | ; Způsob ovládání | ||
+ | * Git lze ovládat | ||
+ | ** z příkazového řádku, | ||
+ | ** bývá integrován do vývojových prostředí (IDE) — NetBeans, IntelliJ IDEA, Visual Studio Code, Visual Studio,... | ||
+ | ** existují také podpůrné nástroje pro práci v grafickém uživatelském prostředí. | ||
+ | |||
+ | ; GitHub | ||
+ | * GitHub je veřejný server, kde si můžete vytvořit repozitář a sdílet se spolupracovníky zdrojový kód svého projektu. | ||
+ | * Váš Git umí stáhnout z GitHubu aktuální verzi a posléze nahrát zpět provedené změny. | ||
+ | * Obdobných serverů existuje více (GitLab,...), GitHub patří k nejznámnějším. | ||
+ | |||
+ | == Instalace == | ||
* Git nainstalujete jako běžnou aplikaci ze stránek: [https://git-scm.com/downloads Git-scm.com] | * Git nainstalujete jako běžnou aplikaci ze stránek: [https://git-scm.com/downloads Git-scm.com] | ||
* 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 unixových systémů. Jeho ovládání ale pro většinu uživatelů Windows není příliš přívětivé — aspoň než si zvyknete. | *: Výchozí volbou je editor <code>vim</code>, známý z unixových systémů. Jeho ovládání ale pro většinu uživatelů Windows není příliš přívětivé — 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 — 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 instalaci a úvodní konfiguraci: [[Git: Instalace]]. | ||
− | == | + | == Vytvoření repozitáře == |
− | * | + | * Vytvořte si účet na serveru [https://www.github.com Github.com] (pokud už nemáte) a založte repozitář. (Můžete použít také jiný server.) |
− | ; | + | * Vygenerujte si klíč pro SSH přístup pomocí ''Git Bash'': |
− | git | + | ssh-keygen -t rsa |
− | ; Zařazení aktuálních změn | + | * Nahrajte veřejný klíč do svého účtu na [https://www.github.com Github.com]: ''Settings → SSH and GPG keys'' |
+ | |||
+ | * Vytvoření lokální kopie vzdáleného repozitáře v aktuální složce: | ||
+ | git clone ''git@github.com:''username''/''repository-name'' | ||
+ | * Více viz [[Git: Repository]]. | ||
+ | |||
+ | == 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 soubor | ||
git add . | git add . | ||
− | + | git add -A | |
− | ; Vytvoření | + | ; Vytvoření snímku |
git commit | git commit | ||
− | * | + | ; Zobrazení historie |
+ | git reflog | ||
+ | git log | ||
+ | * Ukonči klávesou ''Q'' | ||
+ | git log --oneline --decorate --graph | ||
+ | ; Odvolání změn z 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 repozitáře — změny mohli provést ostatní vývojáři | ||
− | + | ; Následně pracujte v lokální repozitáři | |
− | + | ... | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
git add . | git add . | ||
− | |||
− | |||
− | |||
git commit | git commit | ||
− | + | ||
+ | ; Odeslání změn z lokálního do vzdáleného repozitáře | ||
+ | git pull | ||
git push | 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 repozitářem pracuje více lidí, je vhodné tyto změny vyřešit v samostatné větvi (branch). | |
− | + | * Ostatní tak mají kód stále k dispozici projekt v původní neporušené verzi. | |
− | + | * Pamatujte si: 1 změna = 1 větev. | |
+ | ; 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'' | ||
− | + | * 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 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 kořenovém adresáři vašeho repozitáře s projektem. |
− | * | + | * Odstranění ignorovaných souborů ze vzdáleného adresáře, pokud jste je předtím již nahráli (v 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 Gitu. |
+ | * Více na stránce [[Markdown]]. | ||
+ | == GitHub == | ||
+ | * Typy účtů na GitHubu | ||
+ | ** Osobní účet: zdarma, neomezený počet soukromých i veřejných repozitářů. | ||
+ | ** Firemní účet: administrátoři mohou spravovat oprávnění jednotlivých vývojářů k firemním projektům. | ||
+ | ** Enterprise účet: centrální správa několika organizací. | ||
+ | * Lze pracovat s 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 problémy == | ||
+ | * Některé běžné dotazy a problémy jsou vysvětleny na stránce [[Git: FAQ]]. | ||
− | == | + | == Zdroje == |
− | * [https://www.learn2code.cz/kurzy/git-a-github Learn2Code.cz → Git a GitHub] | + | * Rychlý videokurz: [https://www.learn2code.cz/kurzy/git-a-github Learn2Code.cz → Git a 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 → Git — Core concepts] |
Aktuální verze z 12. 10. 2022, 06:03
Obsah |
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.
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í
- Git lze ovládat
- z příkazového řádku,
- bývá integrován do vývojových prostředí (IDE) — NetBeans, IntelliJ IDEA, Visual Studio Code, Visual Studio,...
- existují také podpůrné nástroje pro práci v grafickém uživatelském prostředí.
- GitHub
- GitHub je veřejný server, kde si můžete vytvořit repozitář a sdílet se spolupracovníky zdrojový kód svého projektu.
- Váš Git umí stáhnout z GitHubu aktuální verzi a posléze nahrát zpět provedené změny.
- Obdobných serverů existuje více (GitLab,...), GitHub patří k nejznámnějším.
Instalace
- Git nainstalujete jako běžnou aplikaci ze stránek: Git-scm.com
- Doporučujeme zvolit si při instalaci vhodný textový editor pro psaní komentářů.
- Výchozí volbou je editor
vim
, známý z unixových systémů. Jeho ovládání ale pro většinu uživatelů Windows není příliš přívětivé — 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 — zde používáme Poznámkový blok)
- Výchozí volbou je editor
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 instalaci a úvodní konfiguraci: Git: Instalace.
Vytvoření repozitáře
- Vytvořte si účet na serveru Github.com (pokud už nemáte) a založte repozitář. (Můžete použít také jiný server.)
- Vygenerujte si klíč pro SSH přístup pomocí Git Bash:
ssh-keygen -t rsa
- Nahrajte veřejný klíč do svého účtu na Github.com: Settings → SSH and GPG keys
- Vytvoření lokální kopie vzdáleného repozitáře v aktuální složce:
git clone git@github.com:username/repository-name
- Více viz Git: Repository.
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
- Ukonči klávesou Q
git log --oneline --decorate --graph
- Odvolání změn z 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 repozitáře — změny mohli provést ostatní vývojáři
- 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í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 repozitářem pracuje více lidí, je vhodné tyto změny vyřešit v samostatné větvi (branch).
- Ostatní tak mají kód stále k dispozici projekt v původní neporušené verzi.
- Pamatujte si: 1 změna = 1 větev.
- 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
- 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
.gitignore
v repozitáři můžete zapsat soubory, které se budou při nahrávání do repozitáře ignorovat. - Vzorové soubory
.gitignore
si lze nechat vygenerovat:- Jděte například na: GitIgnore.io.
- Zadejte název vývojového prostředí, které používáte.
- Vygenerovaný text uložte do souboru
.gitignore
v kořenovém adresáři vašeho repozitáře s projektem.
- Odstranění ignorovaných souborů ze vzdáleného adresáře, pokud jste je předtím již nahráli (v 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 Gitu.
- Více na stránce Markdown.
GitHub
- Typy účtů na GitHubu
- Osobní účet: zdarma, neomezený počet soukromých i veřejných repozitářů.
- Firemní účet: administrátoři mohou spravovat oprávnění jednotlivých vývojářů k firemním projektům.
- Enterprise účet: centrální správa několika organizací.
- Lze pracovat s 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 problémy
- Některé běžné dotazy a problémy jsou vysvětleny na stránce Git: FAQ.
Zdroje
- Rychlý videokurz: Learn2Code.cz → Git a GitHub
- Lokální práce s Gitem, analogie s fotoalbem: FreeCodeCamp.org → Git — Core concepts