November Black Friday C# týden
BlackFriday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Pouze tento týden sleva až 80 % na e-learning týkající se C#

GitKraken - git gui klient

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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.

logo GitKraken

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

interface GitKraken

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/re­lease/feature/hot­fix) 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í.
graph elements v GitKraken
  • 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.
commit symbols v GitKraken
  • 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í.

merge tool v GitKraken
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

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

merge tool v GitKraken

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/fil­trovat, 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


 

 

Článek pro vás napsal Martin Gabriel
Avatar
Jak se ti líbí článek?
5 hlasů
Zajímám se o vývoj desktopových aplikací v jazyce C# .NET, dále o vývoj mobilních aplikací (Xamarin, nebo Swift iOS). Občas udělám nějaký web (HTML5, PHP, jQuery, trochu JavaScript) a sem tam se hraju s Linuxem. Mimo mé zaměstnání (.NET vývojář) ...
Předchozí článek
Git - GitHub Desktop
Všechny články v sekci
Git
Aktivity (2)

 

 

Komentáře

Avatar
Ondřej Štorc:5. září 17:50

K té rychlosti, podlě mě to je furt jeden z nejpomalejších klientů a rozhodně bych ho neoznačil za rychlý. Jediné co mu konkuruje v pomalosti je snad VS, které při sebemenší změně SLN filu načítá znova celou solutionu...

Odpovědět
5. září 17:50
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Andy Scheuchzer:5. září 18:04

i když má GitKraken free verzi, tak si pro použítí musíte vytvořit GitKraken účet

Tahle verze by byla ještě celkem v pořádku… Když se ale dozvíš, že ti sami vytvořili účet, až když se podíváš do mailu, nenazval bych to nevýhodou, ale… něčím výrazně horším.

Odpovědět
5. září 18:04
Člověk, co si myslí, že snědl všechnu moudrost světa, i když tomu tak není.
Avatar
Martin Gabriel
Redaktor
Avatar
Odpovídá na Ondřej Štorc
Martin Gabriel:5. září 21:55

Uznávám, že ve srovnání s jinými klienty, jako je třeba Fork, je GitKraken stále pomalejší. Rychlý jako blesk mi přijde oproti předešlým verzím, protože tam bylo například spouštění klienta otřesně pomalé (10 sec a více). Nicméně i přesto mi v té době přišel jako nejlepší klient hlavně kvůli přehlednosti.
Moje každodenní použítí GitKrakenu je takové, že ho ráno po startu počítače otevřu, v tabech mám cca 7 repozitářů které spravuji a klienta zavírám až když vypínám počítač. Takže nějaká vteřina navíc mi při spouštění vůbec nevadí. :) Ale chápu, že někomu to vyhovovat nemusí. Co konkrétně používáš, jestli se můžu zeptat?

Odpovědět
5. září 21:55
"Be the change you want to see in the world" - Michael Scofield
Avatar
Odpovídá na Martin Gabriel
Ondřej Štorc:6. září 8:24

Kdyby jen šlo o rychlost startu, tak bych to ani neřešil, ale mám problém hlavně s tím, že když dám pull tak čekám 15-30s než se něco stane. Určitě to ta 6ka zlepšila, ale furt mi to přijde oproti příkazové řádce propasný rozdíl. Jinak normálně používám Rider na práci s gitem, je to rychlé a pro moje potřeby to stačí. Fajn je taky i tapříkazová řádka, ale to už je zase někde jinde :)

EDIT: Dřív jsem ještě používal SourceTree, tam bylo strašně pomalé přepínání obrazovek, ale zbytek práce už byl vcelku rychlý

Editováno 6. září 8:25
Odpovědět
6. září 8:24
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Martin Gabriel
Redaktor
Avatar
Odpovídá na Ondřej Štorc
Martin Gabriel:6. září 8:53

Tyjo, tak to koukám. U mě v práci pull projde v řádu sekund ze self-hosted GitLabu. Naopak když se snažím pushovat z Visual Studia, tak to někdy trvá i víc než 10 sec a z krakenu hned. Doma na MACu taky nemám problémy s rychlostí (tam mám remote většinou na GitHubu). Oba dva stroje nejsou nijak extra výkonné, ale asi má GitKraken ještě nějaké mezery v optimalizaci.

Díky za tip! Na ten Rider se mrknu. Už dlouho si říkám, že musím vyzkoušet nějakou alternativu k Visual Studiu. :)

Odpovědět
6. září 8:53
"Be the change you want to see in the world" - Michael Scofield
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Martin Gabriel
Ondřej Štorc:6. září 9:34

Nevím na jakých projektech děláš, ale tyhle problémy jsem měl hlavně u firemního projektu, kde to repo má cca. 1GB, takže to je možná tím. Jinak do Rideru jdi, je to multiplatformní takže si nemusím zvykat na jiné IDE když dělám na Macu, nebo na Linuxu

Odpovědět
6. září 9:34
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Petr Novák
Člen
Avatar
Petr Novák:6. září 13:07

Co bych asi doplnil je, že ve verzi free neumí na privátním účtu pracovat s PR na GitHubu.Nevidí ani vytvořený a ani nejde vytvořit.

Editováno 6. září 13:08
 
Odpovědět
6. září 13:07
Avatar
nordic
Člen
Avatar
nordic:10. září 16:25

GitKraken pouzivam a mam platenu verziu. No ta pamatova narocnost je viac nez moc...
Jeden otvoreny repozitar mi zabera 1.5 gb ram a vo Visual Studiu ten isty repozerat zere o polovicu menej :) To je proste moc...

 
Odpovědět
10. září 16:25
Avatar
Martin Gabriel
Redaktor
Avatar
Odpovídá na nordic
Martin Gabriel:10. září 16:45

Hmmm, to je dost divné, s tím bych asi zkusil napsat na podporu. Možná je to nějaký jednoduše řešitelný problém. Aktuální verzi asi máš, co?
Já mám teď otevřených 6 repozitářů a drží se to pod 400 mb (viz obrázek).

Odpovědět
10. září 16:45
"Be the change you want to see in the world" - Michael Scofield
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.