If you’re a software developer, there’s a good chance you’ve got an opinion on using the command line for IT operations.
Many devs consider mastering the command line a feat of experience and skill. They are extremely proud, and protective, of their git CLI fluency.
For some devs, it’s downright romantic; the CLI offers an intimate experience with your computer. It’s like having a back-and-forth conversation with your machine.
We’re not even going to address that now… That’s a whole other blog post.
But like Dan, a seasoned and industry-respected software developer explains, we very much believe in the immense benefits offered by GUIs that just aren’t possible in the CLI:
I certainly know Git very well, and honestly think I’m far faster and more efficient in a Git GUI than I could possibly be in the command line – and I’m certainly not slow in the CLI.– Dan Clarke, blogger and co-organizer of .Net Oxford group
CLI vs GUI
As we’ve already established, devs who love the CLI LOVE the CLI. And many initially find GUIs, like GitKraken, an offense to their years of grinding code the hard way. Emphasis on the HARD WAY.
GUI-shaming is real. Check out this Twitter post from Ben Halpern, an influential programmer and Founder of Dev.to.
Ben was so intrigued by the responses he received that he wrote this follow-up article, “On GUI-shaming and a mountain of hot takes,” to highlight some of the comments.
GUIs are not ‘for people who don’t want to invest the time and effort in trying to find out how something really works.’ They are a tool like any other.– Ben Halpern, Founder of Dev.To
And we’re here to tell you “command line junkies” that it’s time to modernize your tool belts.
GUIs Have Won
Axosoft Founder, Hamid Shojaee, recently spoke at DeveloperWeek in Oakland on this very topic.
Imagine, for example, a smartphone, and how the experience would change if you had to type commands line by line instead of selecting icons. Instead of one touch, the process would be extended exponentially.
$ Run Instagram Loading Instagram...
Life is too short to still be using the command line. GUIs have won and are the way of the future!
Improve Your Life with GitKraken
A common mantra for devs is “work smarter, not harder.” There’s no reason GUIs should be the exception to this rule.
Let’s dive into how the GitKraken Git Client can increase your productivity and improve collaboration and communication with your team.
Life’s too short! Reject the CLI and Release the Kraken!
Viewing Commit History
In Hamid’s video, he compares the experience of viewing the history of your commits in the command line vs the beautiful rainbow graph in GitKraken.
In the CLI, the process entails typing:
git log --all --decorate --oneline --graph
And then you get this…
Whomp, whomp. “ASCII art” on the left showing branches and merges and jibberish lines containing the SHA (Secure Hash Algorithm), which is supposed to provide you helpful context regarding which file changes have been made…
In GitKraken, you can clearly see when every commit was made and by whom; all your branches and where they were merged; and you can click any commit to quickly open the file and see the diff! More on that to come…
Unlike the command line, GitKraken offers users the ability to add substantial context to each commit, which is easily available for others working on your project to see.
Commit information can be found in the Commit Panel, which lives on the right of the graph, and is a fan favorite feature. Try saying that five times fast…
You can see both unstaged and staged files here. Simply select a file to view the changes line by line in Diff View, showing you exactly what changes were made to your code. GitKraken highlights the altered code, allowing you to find the context you need in seconds.
Merge Conflict Editor
One of GitKraken’s most significant features is the Merge Conflict Editor, and frankly, could easily make the GUI > CLI argument on its own. There’s simply nothing comparable when using the command line.
When you run into a merge conflict in GitKraken, simply click the conflicted file to open the editor.
You’ll see three different sections: the two side-by-side sections on the top half show you the different versions of the file you’re trying to merge. The third section on the bottom half shows the output, allowing you to quickly identify where the issue is occurring, making it a breeze to select what you want to keep or discard.
The Merge Conflict Editor in GitKraken allows you to see the conflicting versions of code side-by-side AND even allows you to edit the output in the text editor if you’re using the Pro version. The best part? You’ve accomplished all of this inside one tool, saving time and preventing context loss.
This entire process would have been not only longer using the command line, but also more grueling and stressful. Resolving a merge conflict without a tool like GitKraken takes your focus away from an otherwise smooth workflow, risking loss of context, time, and mental energy.
Rebasing with Less Risk
When it comes to rebasing, GitKraken can lend a helping hand, especially when things don’t go as planned.
Identifying what went wrong can be extremely difficult in the command line, but GitKraken offers intuitive resources to help you determine where the issue is stemming from and how to fix it.
Similar to the error notification you receive when a merge conflict occurs, GitKraken also lets you know when a rebase has failed and allows you to quickly see why and how to resolve it. Beautifully illustrated in this Learning Git with GitKraken video: Rebasing in GitKraken vs CLI Part 2, the experience is much shorter and smoother when using a GUI.
As shown in the video, if you run into a conflict when rebasing in the CLI, you must leave your central workspace to open your text editor, find the conflict, edit the text to resolve the issue, save your changes, and then go back to the command line to stage the changes, run the changes, and then continue your rebase. Now here’s to hoping you don’t get another conflict message, forcing you to repeat the entire process again.
Collaboration is Effortless
Collaboration can be notoriously difficult in the CLI; as we already covered, it’s very hard to tell who did what to which file. This can affect accountability and cause costly and continuous delays spent dissecting lines of code.
GitKraken is legendary for the central Commit Graph, which allows you to see who is working on which files in your project.
Your team members are easily distinguishable by their Gravatar images; each collaborator and all of their commits are displayed on the graph in a unique color, making for a beautiful, and useful, technicolor roadmap of your project for all to see.
GitKraken was Built for UX
As the name implies, a graphical USER interface is focused on you, the user (well, maybe not all GUIs – but you get the idea). GitKraken is designed with a heavy emphasis on the user experience – meticulously ensuring that every Git operation is designed to make developers more productive.
How many hours did you spend coding last week? Might as well enjoy them, right?
Even the most die-hard CLI user will be more productive with a web UI in certain situations due to fundamental strengths of GUIs that ultimately are tied to traits inherent in humans.– Micah Linnemeier, UX designer at IBM
The bread and butter of a GUI is visual manipulation of screen space and the ability to utilize a mouse or clicking. Two things that come much more naturally, and much faster to humans than typing: sight and touch.
We’ve already mentioned the next-level multi-color central graph, but GitKraken also has two side panels that add even more value to the user’s visual experience and allow for continuous context.
The Commit Panel is your hub for staging and committing changes.
The Left Panel shows branches, remotes, pull requests, stashes, tags, and submodules. You can easily filter files and other information by typing into the field at the top of the panel.
Your Mouse is Your Friend
Many of our users comment that they didn’t realize how much they missed using their mouse in the CLI until they experienced the functionality offered by hovering and clicking in GitKraken.
Furthermore, GitKraken does an incredible job of providing helpful, intuitive prompts for actions you can take at certain times during your workflow. Below are a few examples of some of our most popular functions.
Drag-and-drop one branch to another to generate a list of possible user actions like merging, rebasing, or a pull request from an integrated repo.
The toolbar at the top of the GitKraken Git Client provides quick and easy access to several major commands including pushing and pulling. All you have to do is move and click your mouse!
We would be remiss if we didn’t mention the magical UNDO button here, which can be a lifesaver when you perform a merge incorrectly.
You can also access the shiny GLO button from your toolbar which allows users to swap over to our Glo Boards for task and issue tracking, without having to open another software program.
When you right-click on any commit, a drop-down menu of options will appear allowing you to create a branch, cherry pick, reset, or revert the commit. When you right-click on the top commit of a branch, you are given a drop-down menu with even more options.
Users can also right-click to view context on specific files or commits and access more features. Furthermore, you can right-click anywhere from the right Commit Panel to create new files.
- Hover Tooltips
GitKraken provides the ability to hover over many items in your dashboard to reveal extended information. Users can also hover over labels to see a list of all refs.
Any keyboard aficionados out there? Don’t worry, we didn’t forget about you! Our Fuzzy Finder was created specifically with you in mind and provides access to our extensive inventory of shortcuts when you click Ctrl + P for Windows and Linux, or Cmd + P on Mac.
Speaking of shortcuts, users can see a full list of all supported keyboard shortcuts by clicking Ctrl + /for Windows and Linux, or Cmd + / for Mac.
Life’s Too Short for the CLI
I sometimes encounter people who feel it’s “better” to use command line Git, but for very ill-defined reasons. These people may feel like they should work in the shell, even if it leads to Git-avoidance, frequent mistakes, or limiting themselves to a small set of ~3 Git commands. This is counterproductive.– Jenny Bryan, Software Engineer at RStudio & Adjunct Professor at the University of British Columbia
Listen to Jenny… It’s time to make the switch to the GitKraken Git GUI. Join more than one million users who have improved their workflow experience and increased productivity and team collaboration.