My Rodese is a bit rusty, but I’m fairly certain that the headline translates to: “GitKraken has a really cool feature called soloing, and you’re gonna absolutely love it!” Or maybe it means “Going somewhere, Solo?” Who can really say, right?
Soloing is something special. When you want to hide all branches and tags, and need to see and work on specific branches and tags that are pertinent to you at the moment, you use the strength of soloing (it’s almost like The Force). So, for example, if you only care about one of your coworker’s remotes, you can hide everything else. It’s laser light focusing power.
What’s more, if you’re not working with a Git GUI client, and still work in the CLI only, in order to solo, you’ll have to install yet another command line tool.
You can check out the other benefits of using GitKraken instead of the CLI, in this helpful cheat sheet. Because we agree with Yoda, “Always pass on what you have learned.”
Simply put, “soloing” a branch, remote, or tag in GitKraken, focuses the commit graph to only show the commit in that ref’s history. It’s invaluable when you’re working with one or two branches at a time and want to ignore everything else (for example, if you want to check the progress on a release branch without having to filter out the rest of the graph).
Give in to the Graph (Not the Dark Side)
So, I can hear you asking, “how does this work?” Let’s start with an explanation of how the graph works. Imagine all your branches (both local and remote), tags, and stashes in one big list; for each of them, trace the commit history from their heads to the beginning of time. Then, merge those lines together into a graph, and presto: you’ve earned your degree in GitKraken graphing!
When you choose a ref to solo, GitKraken ignores that big list we were talking about and just focuses on what you told it to. If you decide to solo another ref, GitKraken will add that ref’s history to the graph, and so on and so on ad infinitum (or at least until you decide you’ve soloed everything you need). BONUS: you can solo a remote, which will solo all its refs!
In this example, you’ll have to imagine a galaxy far, far away, where our heroes, Luke Skywalker, Leia Organa, and Han Solo, act out this storyline. When the whole graph is viewed at once, the branches interrupt each other chronologically:
However, say we’re just interested in Han Solo: we can solo Solo (sorry, couldn’t resist) to see the following:
Or, maybe we want to analyze The Force’s influence on Luke and Leia as they lived out their destinies on opposite sides of the galaxies. If we had even more characters to worry about (say, Chewbacca and Obi-Wan), you could imagine that trying to sort through the entire graph would become difficult; this is when soloing comes to the rescue! First, let’s solo Leia:
Now that Leia’s soloed, notice the solo buttons that are now present next to all of the refs in the left panel:
Next, let’s solo Luke as well:
The Dev Side
Soloing is a GitKraken-specific feature, and because it was uncharted territory, we needed to solve various design and architectural problems. For example:
- How should soloing interact with the ref hiding functionality?
- How should the data be cached?
- Also, soloing affects the repo’s internal representation, not just how it’s visually displayed in the graph, so we had to lock down what actions are available when something is soloed.
Solving and working through these challenges gave us an opportunity to learn new things and help us understand various new ways in which the app can expand.
One of the things we learned is that soloing, although simple, is a pretty powerful concept. So, start looking for ways that soloing can make you more productive in your day-to-day development using Git.
Stay on the cutting edge of software development by getting innovative tips, trends and stories delivered to your inbox every month!