Using a Git GUI Isn’t All Bad (And Sometimes Pretty Useful)

Get gui showing commit messages

While not the popular opinion of CLI git users, I’ve gotten a ton of mileage from my git GUI. Using the CLI rather than a GUI provides a lot of value: seeing the bigger picture of your code and being able to navigate through different branches, commits or history can become clean and easy to understand with a little help from your friendly GUI.

As a recap on what each term means, here is a description of git, CLI and GUI:

CLI – “Command Line Interface.” When using the CLI, the git user will be interacting with git and their repo through the command line on a terminal, with commands given and information seen in the terminal as well.

GUI – “Graphical User Interface.” Rather than using the terminal, a GUI will show the repo and git commands with more visual aspects and become more interactive for the git user. These can be presented as its own program. or even integrated into other tools you may already use. SourceTree, GitKraken, Git Cola, Github Desktop, or SmartGit are a few of the names you may be familiar with already.

The CLI vs GUI argument

This argument can at times come with a little heat, and as with most arguments, there are valid points to each side.

Oftentimes, the CLI’s side claims using this method can give you access to all of the fine features offered by git where a GUI may fall short. Using a GUI also poses the issue of whether or not the user fully understands the concepts presented by git, which can become fairly important as they interact with the repo from day-to-day.

On the other hand, a GUI helps put visuals to the structure of your repository which could be lost in the CLI. Common tasks can also become easier and less time consuming (always a plus!) throughout your day as you just need to push a button rather than typo out lengthy branch names into commands.

https://images.unsplash.com/photo-1499290731724-12e120cfaef3?ixlib=rb-1.2.1&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjYzOTIxfQ

My preference is assertively GUI as it can help you in your day-to-day performance, from visual help to time management.

Helpful visuals

The visible features of your repo are going to undoubtedly be the first thing you notice when first checking out a git GUI and one of the most useful reasons for grabbing one of these programs. Visual learners will appreciate these features over the text of a terminal.

Branches are shown similar to branches on a tree, which is probably where they get their name. With one glance, you can pretty easily see where the branch started, how many changes are associated with that branch and how many branches are currently floating around on your repo.

Seeing branches through GUI
Seeing branches through CLI

Commits are listed in order on each of their branches, so seeing the changes as they happened becomes intuitive. Not only can you visually see the commits, but the user can easily click on each one to get information such as what changed on that commit, when it happened or who did it. When running around trying to find when a pesky bug first appeared in your code, being able to click through commits quickly is extremely helpful!

Checking the ‘Do a little more’ commit through GUI
Commit changes through CLI

Note: In the above pictures, the CLI’s picture shows the commit changes, where with the GUI, you need to click on the files on the right to see how they were edited.

Diffs. While you can check diffs on both the CLI and GUI similarly, I find checking them through the CLI can be confusing, especially on larger diffs. Seeing colors added and a better line-by-line comparison can make a world of ‘difference.’ 😅

File change through GUI
File changes for a commit through CLI (Same as above)

Stashes were one thing that bothered me while using the CLI. I was able to stash fine, but where did they go? Obviously, those stashes were out there somewhere, but they are easy to forget about and have extras taking up space.

Seeing a stash after creation through the GUI
Creating a stash and searching for it through CLI

Just taking a look at the differences between these two options can give you a pretty quick idea of how visually seeing your repo can help with development speed and understanding. Time, reliability and a sane mind are all very valuable assets to us developers!

Quicker and Easier Actions

Once again, another benefit to using a GUI is time. Many git commands have been reworked into a couple of clicks of a button in your standard GUI. When you want to stash your uncommitted code? Click a button. You want to check out a different branch? Click on it. You want to rebase your branch onto a new branch? Two clicks.. but still quick! You’ll quickly be racking up the saved time as you don’t have to find branch names, type out full commands or search through all the text in your terminal.

While I don’t think using a GUI is definitively better, I do find I have received a lot of value from using mine over the default CLI tools. I would highly suggest installing one and giving it a whirl to see if it will help you out as much as it did with me, especially if you are newer to git. If you came in with a distaste for git GUIs, I hope you can see why us git GUI-users aren’t all too bad.

And if you have questions about an embedded project you’re working on, Dojo Five can help you with all aspects of your EmbedOps journey! We are always happy to hear about cool projects or interesting problems to solve, so don’t hesitate to reach out and chat with us on LinkedIn or through email!

Discover why Dojo Five EmbedOps is the embedded enterprise choice for build tool and test management.

Sign up to receive a free account to the EmbedOps platform and start building with confidence..

  • Connect a repo
  • Use Dev Containers with your Continuous Integration (CI) provider
  • Analyze memory usage
  • Integrate and visualize static analysis results
  • Perform Hardware-in-the-Loop (HIL) tests
  • Install the Command Line Interface for a developer-friendly experience

Subscribe to our Monthly Newsletter

Subscribe to our monthly newsletter for development insights delivered straight to your inbox.

Interested in learning more?

Best-in-class embedded firmware content, resources and best practices

A finger moves toward the word update on a artistic depiction of technology

A Long Way From Home

Over The Air updates (OTA) takes advantage of modern connectivity for devices. Even for devices that aren’t normally connected to communication networks, it’s often possible to connect them to a computer or mobile device that is connected to the network and update them. It’s also become a common part of modern embedded development and release strategy.

Read More »
Docker Whale

Docker: An Ideal Development Environment

Docker is a revolutionary tool that provides speed and repeatability for an embedded team. While traditionally used in non-firmware environments, there is enormous potential to improve the development efforts of firmware projects by making use of Docker. The Problem A few decades ago, you could submit your work as a batch job to a common environment, shared by everyone.Everyone used the same tools and the same settings. As technology improved, the shared environment slowly started moving towards personalized spaces; first

Read More »

The CLI’s Essential ‘Verbose’ Option

For those creating their own CLI tool If you have played around with any command line interface tools, such as Particle CLI or Git UI, you’ll notice that they oftentimes will have a verbose or -v option with their commands. This allows you to change log levels within the program, outputting as little or as much as you desire. This example CLI tool makes use of the Click library for Python. If you are having trouble getting started, check out

Read More »