GitKraken - git gui klient
V predchádzajúcom kvíze, Kvíz - Git, sme si overili nadobudnuté skúsenosti z kurzu.
V tomto článku si ukážeme grafickú nadstavbu pre správu git repozitárov GitKraken a jej výhody oproti terminálu a ostatné grafické nadstavbám. Pre úplné pochopenie článku sa predpokladá základná znalosť gitu.
GitKraken je multiplatformový git gui klient, ktorý umožňuje užívateľovi pracovať s repozitári rýchlo a prehľadne. Pravdepodobne si kladiete otázku - prečo by som mal použiť zrovna GitKraken namiesto môjho obľúbeného git gui klienta? GitKraken ponúka:
- Interaktívny graf konárov, v ktorom sa používateľ jednoducho orientuje. Vývojárom sa podarilo veľmi dobre vyriešiť merge vetiev, ktoré užívateľ môže spájať pomocou drag & drop, ale hlavne v prípade merge konfliktov poskytuje prehľadný nástroj na ich vyriešenie.
- Ďalej umožňuje spravovať viac repozitárov, ktoré sa otvárajú v tabech podobne ako u webových prehliadačov.
- Barličkou pre začiatočníkov s GITE môže byť Undo & Redo funkcionalita, ktorá vás v prípade nechceného COMMIT (alebo merge) vráti hneď späť.
- Samozrejmosťou je integrácia remote služieb ako GitHub, GitLab, Bitbucket alebo Azure DevOps.
- GitKraken tiež obsahuje editor s podporou syntax highlight, súborovú Minimap a mezisouborovým vyhľadávaním.
Prehľadný interface
Moderný a prehľadný interface je rozdelený na 4 hlavné časti:
- ľavý panel Local & Remote obsahujú zoznamy
všetkých vetiev, ktoré sú v lokálnom a remote repozitári.
Tags, Submodules, stashes - tu asi nie je potrebné nič dodávať - zoznam tagov, submodulov a aktívneho Stash.
Pull Requests zobrazuje aktívny Pull request z GitHub, Bitbucketu a GitLabu (v tomto prípade ide o Merge request), v prípade integrácie GitHub alebo Bitbucket účtu umožňuje vytváranie pull request priamo z GUI bez nutnosti použitia webového rozhrania.
V prípade použitia Git Flow (čo je v skratke sada pravidiel pre prácu s vetvami ako master / develop / release / feature / opravu) môžete jednoduchšie spravovať tieto vetvy. Napríklad po ukončení prác na opravu za vás GitKraken prevedie merge / rebase.
- Local & Remote obsahujú zoznamy všetkých vetiev, ktoré sú v lokálnom a remote repozitári.
- Tags, Submodules, stashes - tu asi nie je potrebné nič dodávať - zoznam tagov, submodulov a aktívneho Stash.
- Pull Requests zobrazuje aktívny Pull request z GitHub, Bitbucketu a GitLabu (v tomto prípade ide o Merge request), v prípade integrácie GitHub alebo Bitbucket účtu umožňuje vytváranie pull request priamo z GUI bez nutnosti použitia webového rozhrania.
- V prípade použitia Git Flow (čo je v skratke sada pravidiel pre prácu s vetvami ako master / develop / release / feature / opravu) môžete jednoduchšie spravovať tieto vetvy. Napríklad po ukončení prác na opravu za vás GitKraken prevedie merge / rebase.
- graf V ľavej časti sa zobrazujú konáre a tagy, ktoré
predstavujú ukazovatele na konkrétne commit. Jednotlivé vetvy sa dajú
skrývať pre lepšiu prehľadnosť v grafe. Možno tiež zobraziť "solo"
vetvu.
V pravej časti zobrazuje každý riadok jeden commit, vedľa ktorého ide vidieť Commit Message. COMMIT sú zoradené od najnovších po najstaršie. Každá vertikálna čiara predstavuje branch dostupnú v lokálnom repozitári. Na jednom COMMIT môže byť viac vetiev, ktoré sa zobrazí nabehnutím myši na zobrazenú vetvu. Môže sa tu tiež nachádzať Tag.
// WIP upozorňuje, že sú zmenené nejaké súbory v repozitári a táto zmena zatiaľ nie je commitnuta.
Stash Node zobrazuje, že vo vetve sú uložené zmeny vo Stash oblasti pre neskoršie použitie.
- V ľavej časti sa zobrazujú konáre a tagy, ktoré predstavujú ukazovatele na konkrétne commit. Jednotlivé vetvy sa dajú skrývať pre lepšiu prehľadnosť v grafe. Možno tiež zobraziť "solo" vetvu.
- V pravej časti zobrazuje každý riadok jeden commit, vedľa ktorého ide vidieť Commit Message. COMMIT sú zoradené od najnovších po najstaršie. Každá vertikálna čiara predstavuje branch dostupnú v lokálnom repozitári. Na jednom COMMIT môže byť viac vetiev, ktoré sa zobrazí nabehnutím myši na zobrazenú vetvu. Môže sa tu tiež nachádzať Tag.
- // WIP upozorňuje, že sú zmenené nejaké súbory v repozitári a táto zmena zatiaľ nie je commitnuta.
- Stash Node zobrazuje, že vo vetve sú uložené zmeny vo Stash oblasti pre neskoršie použitie.
- Commit Panel Unstage / Stage oblasť slúži na
rozlíšenie súborov, ktoré majú byť v COMMIT - umožňuje zobrazenie
zoznamu s cestou k súboru, alebo zobrazenie v stromovej adresárovej
štruktúre.
Pri každom súbore sa zobrazuje stav pre lepšiu orientáciu. Pri kľučku na súbor si môžete zobraziť zmeny v súbore, alebo celý súbor v editore, kde môžete súbor priamo upravovať.
V commit paneli sa tiež zobrazuje zoznam súborov, v ktorých nastal konflikt v prípade merge dvoch vetiev. Ponúka potom vyriešenie konfliktu, kedy presmeruje používateľa do Merge Tool.
- Unstage / Stage oblasť slúži na rozlíšenie súborov, ktoré majú byť v COMMIT - umožňuje zobrazenie zoznamu s cestou k súboru, alebo zobrazenie v stromovej adresárovej štruktúre.
- Pri každom súbore sa zobrazuje stav pre lepšiu orientáciu. Pri kľučku na súbor si môžete zobraziť zmeny v súbore, alebo celý súbor v editore, kde môžete súbor priamo upravovať.
- V commit paneli sa tiež zobrazuje zoznam súborov, v ktorých nastal konflikt v prípade merge dvoch vetiev. Ponúka potom vyriešenie konfliktu, kedy presmeruje používateľa do Merge Tool.
- Toolbar a ovládacia lišta Undo a Redo - umožňuje
vracať späť a vpred niektoré akcie, ako napríklad nechtěnný commit, alebo
merge (napríklad push na remote repozitár nejde vrátiť).
Pull stiahne zmeny z remote repozitára, prípadne umožňuje po rozkliknutí Fetch All, alebo ďalšie možnosti pull ako fast-forward a rebase.
Push nahrá COMMIT na remote repoziřář.
Stash uloží zmenené súbory, ktoré neboli commitnuty do Stash.
Pop vráti zmenené súbory zo stash do working directory.
Glo Boards otvorí nástroj pre správu úloh a github issues. Túto časť GitKrakenu si popíšeme v samostatnom bode nižšie.
Taby umožňujú otvoriť viac git repozitárov zároveň a plynule medzi nimi prepínať.
- Undo a Redo - umožňuje vracať späť a vpred niektoré akcie, ako napríklad nechtěnný commit, alebo merge (napríklad push na remote repozitár nejde vrátiť).
- Pull stiahne zmeny z remote repozitára, prípadne umožňuje po rozkliknutí Fetch All, alebo ďalšie možnosti pull ako fast-forward a rebase.
- Push nahrá COMMIT na remote repoziřář.
- Stash uloží zmenené súbory, ktoré neboli commitnuty do Stash.
- Pop vráti zmenené súbory zo stash do working directory.
- Glo Boards otvorí nástroj pre správu úloh a github issues. Túto časť GitKrakenu si popíšeme v samostatnom bode nižšie.
- Taby umožňujú otvoriť viac git repozitárov zároveň a plynule medzi nimi prepínať.
Merge, rebase a merge conflict editor
Merge a rebase pomocou drag & dropu je príjemná vychytávka, ale nie je problém vykonávať tieto akcie pomocou kľučku pravého tlačidla na cieľovú vetvu. V GitKraken môžete interaktívne mergovat aj tie konáre, na ktorých aktuálne nepracujete. Taktiež môžete na ostatných vetvách vykonávať Fetch, Pull a Push bez zbytočného stashování a prepínanie vetiev.
Určite ste sa mnohokrát stretli s konfliktami pri mergování väčších konárov. Riešenie konfliktov vie byť niekedy veľmi zákernou činností, u ktorej padajú rôzne expresívne výrazy. Merge conflict editor vám túto prácu uľahčia. Prehľadne si vyberiete, ktoré riadky sa majú vložiť do výsledku merge. V prípade potreby môžete priamo do editora vložiť ďalšiu kód, alebo doplňujúce komentár. Táto funkcia je súčasťou PRO verzia.
Pull request
GitKraken ponúka integráciu pull requestu (prípadne merge request v prípade GitLabu) pre uľahčenie a zrýchlenie práce. V prípade prepojenia so službami ako je GitHub alebo GitLab vám GitKraken ponúkne vytváranie nových pull request priamo z GUI. Už existujúce pull request môžete spravovať priamo v aplikácii bez nutnosti použitia webového rozhrania. Využiť sa dajú tiež assignee a labely.
OAuth integrácia
GitKraken môžete prepojiť pomocou OAuth so službami ako GitHub, GitLab, Bitbucket, alebo Azure DevOps. V prípade GitLabu nie je problém služby prepojiť aj na self-hosted inštanciách. Ak budete napríklad chcieť naklonovať projekt, alebo budete chcieť pridať remote repozitár, tak vám GitKraken ponúkne prístup na služby, ktoré máte pripojené.
Glo Issues Boards
Glo Boards slúži k organizácii a trackovanie taskov alebo issues. Jednotlivé tasky sa dajú spravovať v kalendárne zobrazenie, alebo prípadne v tabuľkovom móde. Medzi tasky sa dá jednoducho vyhľadávať / filtrovať, tasky sa dajú prideľovať členom teamu a dajú sa deliť na privátne alebo verejné. Popisy taskov podporujú Markdown, je možné si v nich vytvárať checklisty, labely, pripojiť prílohy formou súborov a aktivitu taskov môžete sledovať cez notifikácia. Glo Boards majú tiež svoju vlastnú mobilnú aplikáciu, takže s nimi ide pracovať aj mimo PC. S použitím GitHub integrácie môžete spravovať issues cez GitKraken Glo Boards a zmeny vykonávať v reálnom čase z GitKrakenu do GitHub webového rozhrania.
Dôvody prečo použiť GitKraken
Už sme si dostatočne popísali funkcionality GitKrakenu a teraz si zhrnieme, prečo by ste mali dať GitKrakenu šancu:
- GitKraken je multiplaftormní (Mac, Linux, Windows)
- medzi hlavné výhody patrí prehľadný graf
- merge / rebase vetiev pomocou drag & drop, u ktorých vás nezaskočí žiadny merge konflikt vďaka merge conflict editore
- jednoduchá správa a integrácia webových remote služieb ako je GitHub, GitLab
- ďalšie funcionalitu undo / redo pre vrátenie predchádzajúcej akcie
- možnosť správy viacerých repozitárov v tabech
- samozrejmosťou sú aj klávesové skratky, alebo light / dark theme
- veľmi užitočným nástrojom môže byť Glo Issue Boards pre správu úloh, alebo správu issues z pripojeného GitHub
- môžete sa tiež tešiť na časté aktualizácie
Pre poriadok si uvedieme aj nevýhody:
- aj keď má GitKraken free verziu, tak si pre použítí musíte vytvoriť GitKraken účet
- free verzia je tiež obmedzená na nekomerčné použitie, z toho tiež vyplýva, že sa nejedná o open-source projekt
- niektorí užívatelia si v predchádzajúcich verziách sťažovali na pamäťovú náročnosť (ale ja som sa s tým po roku používania nikdy nestretol)
- taktiež bola softvéru vyčítaná rýchlosť, na ktorú sa vo verzii 6 zamerali a aktuálne je GitKraken rýchly ako blesk
Záver
Všetky informácie som čerpal z vlastných skúseností a dokumentácie GitKrakenu (odtiaľto pochádza aj väčšina obrázkov). Ak by ste chceli využiť PRO verziu, tak prikladám svoj referal link nižšie. Verím, že sa vám bude GitKraken páčiť a uľahčí vám prácu na vašich projektoch
Referal link
Môj referal link pre registráciu