Dylan's Advent of Cool Nerd Things Day 18: GitKraken

Git is a phenomenally powerful system for managing source code files - so powerful, in fact, that I’ve joked before that Git was actually invented in the future, and sent backwards in time as a way of teaching human minds how to deal with non-linear history and parallel timelines. Like a lot of developers, Git never really clicked for me until I started using GitHub to host my projects - but these days, working with branches, forks, pull requests and merge heads is so fundamental to how I build software it’s hard to imagine working without it.

(As an aside, I also talk to more and more up-and-coming developers now whose first experience of programming wasn’t sitting in a room by themselves writing little programs, but contributing a few lines of code or documentation to a significant open source project - and I think that’s a very good thing indeed, and I think GitHub deserves a lot of the credit for making collaborative coding so accessible. Nice work, GitHub.)

The Git data model is still incredibly complex, though, and… look, I know there are folks out there who are absolute virtuosos on the git command line; folks who can branch, stash, merge, pop, rebase, commit and push without even skipping a beat. I am not those people. I find it much, much easier to reason about complexity if I can see it, and working with git is one of those areas where I have a handful of familiar commands that I’ll run in a terminal, and for anything even slightly complex I’ll reach for a GUI.

My favourite git GUI tool for the last few years has been Axosoft’s GitKraken, and it just keeps getting better and better.

image-20201218020137847

Fundamentally, it presents the history of all the branches, merges and tags in your project in a way that I find very easy to understand. It’s got built-in merge tools, and in recent versions has added first-class support for working directly with GitHub features like issues and pull requests. Git and GitHub are fantastic tools, but they definitely have a learning curve, and I’ve always found tools like GitKraken invaluable for helping me visualise what’s going on.

Oh, and their logo/mascot? He’s a kraken called Keif, and he loves to dress up - check out the Keif Gallery on their site for some wonderfully whimsical variations on the standard logo. I think this one here is my personal favourite:

img


Part of #Nerdvent: Dylan's Advent of Cool Nerd Things 2020