Gitkraken vs Fork: Facts vs Feelings

I’ve tried almost all the major git clients out there, and these two are the main ones that stuck with me.
Tower and Sourcetree just didn’t jive with me, Git Extensions…I really hated, even VSCode and Visual Studio git are fine in a pinch.
I started with Gitkraken, moved to Fork because it was cheaper and I wanted to try something new, so after a year, how do they compare?

The differences aren’t significant between Gitkraken and Fork, but something FEELS different.
I don’t know whether I can put words to it, but that’s what I’m going to try.
They’re both great either way.

Contents

The Facts #

Fork

Fork is a fairly simple UI, nothing flashy

Fork is a fairly simple UI, nothing flashy

Fork

Facts #

  • $50 one-off
  • Windows, Mac

Pros #

  • Fast
  • Closer to Git (shows actual git results and info etc)
  • Easy access to all the common things
  • Good keyboard support
  • Uses GCM

Cons #

  • Not super flashy
  • Can’t set defaults for things like pull rebase, force push, etc

Gitkraken

Gitkraken’s UI is possibly simpler, but has some fancier looks

Gitkraken’s UI is possibly simpler, but has some fancier looks

Gitkraken

Facts #

  • $60/year
  • Windows, Mac, Linux

Pros #

  • Flashy
  • Loads of integrations built in
  • Nice defaults and helpful suggestions (do you want to force push?)
  • Sexy git graph

Cons #

  • Slower than Fork
  • No GCM ☚ī¸
  • Yearly subscription instead of one-off payment

Let’s take a closer look at some facts.

Disclaimer
Gitkraken was my first real git client
Fork is my current client

ForkGitkraken
Performance🏎ī¸đŸš— (not slow just not as fast)
Sensible defaultsMore like Git, asks questionsSensible defaults
e.g. PullingModal with options like “Force”Single button, rebase by default (I think)
e.g. Pushing with upstream changesFails with Git output, needed to tick box in modalFails but asks if you want to Force Push
GraphInlines branch/tag with commit message, shows SHA and commit timeBranch/tag pulls out to left, hides commit time a little
Profiles (separate creds and behaviour)YesYes
Tabs supportAcross topAcross top
Search/filteringYesYes

Diff #

They both have similar features, although I’d say Gitkrakens is slightly better, better syntax highlighting, better support for entire file view, etc.

Fork Diff

AV1 support in Edge requires a Microsoft Store Extension.

Gitkraken Diff

Gitkrakens diff has some syntax highlighting!

Gitkrakens diff has some syntax highlighting!

Commits and branches #

ForkGitkraken
Rebase featuresGood keyboard shortcutsEasy reword, drop, reorder, etc
Ctrl + Enter to commit staged, Ctrl + Shift + Enter to commit and push
Create branchCtrl + B on a branchRight click –> Create
StashingAsks for name and asks if you want to delete when applyingOne click stash/pop, requires manual rename and manual apply only
WorktreesNo ☚ī¸No ☚ī¸

Integrations #

ForkGitkraken
Git Credential ManagerYes 😀No 😭 oauth, PAT’s, etc
GithubShows some info about PR’s, etcExtensive integrations (issues, PR’s, etc)
AzureNoYes
OtherNo?Yes, many more integrations

Other features #

Fork

  • Allows opening the system default terminal
  • Has a button that allows opening any detected sln in Visual Studio, the whole repo in VSCode, and the Azure Devops url in the default browser

Gitkraken

  • Has it’s own Workspaces feature allowing a custom board and whatnot for teams, etc
  • Has a custom terminal with additional git features

The Feels #

Sometimes it doesn’t matter what the tool does, it’s more about how it feels.

Reading all the above “facts”, it feels like I’m leaning towards Gitkraken, and to some extent I am.
It’s defaults fit my workflow quite well, and SOMETHING about it just feels a bit nicer.
Perhaps it’s the fact that the defaults and flows mean I get less prompts, and if I set something that ISN’T a default, it’s NOT remembered.

That sounds like the correct behaviour, but recently in Fork I ticked “Remove stash after applying” and moved on, but it was remembered the next time which I didn’t want.
That said…Gitkraken auto-deletes it…

The UI differences are there but they’re not significant, and yet I feel like Gitkraken is a bit nicer. Crisper.
Perhaps it’s just bias.

Gitkraken is leaning into some distinguishing features like it’s Terminal, Workspaces, and other integrations which is nice BUT I don’t care as much about that as I do some other things like:

Fork is massively almost overwhelmingly superior in both of these aspects.
Integrations are great, but it doesn’t feel worth juggling PAT’s to make it work.
To be fair, Gitkraken isn’t really slow, it’s slower than Fork.

Another disclaimer
I did have some issues with Gitkakens one-button oauth solution and submitted a bug.
It’s just not something they’re focussing on at this stage (I have a slightly unusual setup)

Conclusion? #

TL;DR FACTS

TL;DR FEELINGS

e.g. Being able to do something weird like drop or reorder a single commit without fussing with a rebase, or quickly reword the commit message is just…nice.

Clearly I’m still conflicted about this, as such, I’m going to use the easiest one which is Fork for now.