Dylan's Advent of Cool Nerd Things Day 18: GitKrakenPosted by Dylan Beattie on 18 December 2020 • permalink
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.
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: