GitKraken - git gui klient
V předchozím kvízu, Kvíz - Git, jsme si ověřili nabyté zkušenosti z kurzu.
V tomto článku si ukážeme grafickou nadstavbu pro správu git repozitářů GitKraken a její výhody oproti terminálu a jiným grafickým nadstavbám. Pro úplné pochopení článku se předpokládá základní znalost gitu.

GitKraken je multiplatformní git gui klient, který umožňuje uživateli pracovat s repozitáři rychle a přehledně. Pravděpodobně si kladete otázku - proč bych měl použít zrovna GitKraken místo mého oblíbeného git gui klienta? GitKraken nabízí:
- Interaktivní graf větví, ve kterém se uživatel jednoduše orientuje. Vývojářům se podařilo velmi dobře vyřešit merge větví, které uživatel může spojovat pomocí drag & drop, ale hlavně v případě merge konfliktů poskytuje přehledný nástroj pro jejich vyřešení.
- Dále umožňuje spravovat více repozitářů, které se otevírají v tabech podobně jako u webových prohlížečů.
- Berličkou pro začátečníky s gitem může být Undo&Redo funkcionalita, která vás v případě nechtěného commitu (nebo merge) vrátí hned zpět.
- Samožřejmostí je integrace remote služeb jako GitHub, GitLab, Bitbucket nebo Azure DevOps.
- GitKraken také obsahuje editor s podporou syntax highlight, souborovou minimapou a mezisouborovým vyhledáváním.
Přehledný interface

Moderní a přehledný interface je rozdělen na 4 hlavní části:
- Levý panel
- Local & Remote obsahují seznamy všech větví, které jsou v lokálním a remote repozitáři.
- Tags, Submodules, Stashes - tady asi není třeba nic dodávat - seznam tagů, submodulů a aktivního stashe.
- Pull Requests zobrazuje aktivní Pull Requesty z GitHubu, Bitbucketu a GitLabu (v tomto případě jde o Merge Requesty), v případě integrace GitHub nebo Bitbucket účtu umožňuje vytváření pull requestů přímo z GUI bez nutnosti použití webového rozhraní.
- V případě použití Git Flow (což je ve zkratce sada pravidel pro práci s větvemi jako master/develop/release/feature/hotfix) můžete jednodušeji spravovat tyto větve. Například po ukončení prací na hotfixu za vás GitKraken provede merge/rebase.
- Graf
- V levé části se zobrazují větve a tagy, které představují ukazatele na konkrétní commit. Jednotlivé větve se dají skrývat pro lepší přehlednost v grafu. Lze také zobrazit "solo" větev.
- V pravé části zobrazuje každý řádek jeden commit, vedle kterého jde vidět Commit Message. Commity jsou řazeny od nejnovějších po nejstarší. Každá vertikální čára představuje branch dostupnou v lokálním repozitáři. Na jednom commitu může být více větví, které se zobrazí najetím myši na zobrazenou větev. Může se zde také nacházet Tag.
- // WIP upozorňuje, že jsou změněny nějaké soubory v repozitáři a tato změna zatím není commitnuta.
- Stash Node zobrazuje, že ve větvi jsou uložené změny ve Stash oblasti pro pozdější použití.

- Commit Panel
- Unstage / Stage oblast slouží k rozlišení souborů, které mají být v commitu - umožňuje zobrazení seznamu s cestou k souboru, nebo zobrazení ve stromové adresářové struktuře.
- U každého souboru se zobrazuje stav pro lepší orientaci. Při kliku na soubor si můžete zobrazit změny v souboru, nebo celý soubor v editoru, kde můžete soubor přímo upravovat.
- V commit panelu se také zobrazuje seznam souborů, ve kterých nastal konflikt v případě merge dvou větví. Nabízí pak vyřešení konfliktu, kdy přesměruje uživatele do Merge Toolu.

- Toolbar a ovládací lišta
- Undo a Redo - umožňuje vracet zpět a vpřed některé akce, jako například nechtěnný commit, nebo merge (například push na remote repozitář nejde vrátit).
- Pull stáhne změny z remote repozitáře, případně umožňuje po rozkliknutí Fetch All, nebo další možnosti pullu jako fast-forward a rebase.
- Push nahraje commity na remote repoziřář.
- Stash uloží změněné soubory, které nebyly commitnuty do stashe.
- Pop vrátí změněné soubory ze stashe do working directory.
- Glo Boards otevře nástroj pro správu úkolů a github issues. Tuto část GitKrakenu si popíšeme v samostatném odstavci níže.
- Taby umožňují otevřít více git repozitářů zároveň a plynule mezi nimi přepínat.
Merge, rebase a merge conflict editor
Merge a rebase pomocí drag & dropu je příjemná vychytávka, ale není problém provádět tyto akce pomocí kliku pravého tlačítka na cílovou větev. V GitKraken můžete interaktivně mergovat i ty větve, na kterých aktuálně nepracujete. Taktéž můžete na ostatních větvích provádět Fetch, Pull a Push bez zbytečného stashování a přepínání větví.

Určitě jste se mnohokrát setkali s konflikty při mergování větších větví. Řešení konfliktů umí být někdy velmi zákeřnou činností, u které padají různé expresivní výrazy. Merge conflict editor vám tuto práci usnadní. Přehledně si vyberete, které řádky se mají vložit do výsledku merge. V případě potřeby můžete přímo do editoru vložit další kód, nebo doplňující komentář. Tato funkce je součástí PRO verze.
Pull Requesty
GitKraken nabízí integraci pull requestu (případně merge requestů v případě GitLabu) pro usnadnění a zrychlení práce. V případě propojení se službami jako je GitHub nebo GitLab vám GitKraken nabídne vytváření nových pull requestů přímo z GUI. Již existující pull requesty můžete spravovat přímo v aplikaci bez nutnosti použití webového rozhraní. Využít se dají také assignee a labely.
OAuth integrace
GitKraken můžete propojit pomocí OAuth se službami jako GitHub, GitLab, Bitbucket, nebo Azure DevOps. V případě GitLabu není problém služby propojit i na self-hosted instancích. Pokud budete například chtít naklonovat projekt, nebo budete chtít přidat remote repozitář, tak vám GitKraken nabídne přístup na služby, které máte připojeny.
Glo Issues Boards

Glo Boards slouží k organizaci a trackování tasků nebo issues. Jednotlivé tasky se dají spravovat v kalendářovém zobrazení, nebo případně v tabulkovém módu. Mezi tasky se dá jednoduše vyhledávat/filtrovat, tasky se dají přidělovat členům teamu a dají se dělit na privátní nebo veřejné. Popisy tasků podporují Markdown, je možné si v nich vytvářet checklisty, labely, připojit přílohy formou souborů a aktivitu tasků můžete sledovat přes notifikace. Glo Boards mají také svou vlastní mobilní aplikaci, takže s nimi jde pracovat i mimo PC. S použitím GitHub integrace můžete spravovat issues přes GitKraken Glo Boards a změny provádět v reálném čase z GitKrakenu do GitHub webového rozhraní.
Důvody proč použít GitKraken
Už jsme si dostatečně popsali funkcionality GitKrakenu a teď si shrneme, proč byste měli dát GitKrakenu šanci:
- GitKraken je multiplaftormní (Mac, Linux, Windows)
- mezi hlavní výhody patří přehledný graf
- merge/rebase větví pomocí drag & drop, u kterých vás nezaskočí žádný merge konflikt díky merge conflict editoru
- jednoduchá správa a integrace webových remote služeb jako je GitHub, GitLab
- další funcionalita undo/redo pro vrácení předešlé akce
- možnost správy více repozitářů v tabech
- samozřejmostí jsou také klávesové zkratky, nebo light/dark theme
- velmi užitečným nástrojem může být Glo Issue Boards pro správu úkolů, nebo správu issues z připojeného GitHubu
- můžete se také těšit na časté aktualizace
Pro pořádek si uvedeme i nevýhody:
- i když má GitKraken free verzi, tak si pro použítí musíte vytvořit GitKraken účet
- free verze je také omezena na nekomerční použití, z toho také plyne, že se nejedná o open-source projekt
- někteří uživatelé si v dřívějších verzích stěžovali na paměťovou náročnost (ale já jsem se s tím po roce používání nikdy nesetkal)
- taktéž byla softwaru vyčítána rychlost, na kterou se ve verzi 6
zaměřili a aktuálně je GitKraken rychlý jako blesk
Závěr
Všechny informace jsem čerpal z vlastních zkušeností a dokumentace GitKrakenu (odsud
pochází i většina obrázků). Pokud byste chtěli využít PRO verzi, tak
přikládám svůj referal link níže. Věřím, že se vám bude GitKraken
líbit a ulehčí vám práci na vašich projektech
Referal link
Můj referal link pro registraci