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

Laptop with some code on screen

I want to write my first embedded program. Where do I start?

The boom in the Internet of Things (IoT) commercial devices and hobbyist platforms like the Raspberry Pi and Arduino have created a lot of options, offering inexpensive platforms with easy to use development tools for creating embedded projects. You have a lot of options to choose from. An embedded development platform is typically a microcontroller chip mounted on a circuit board designed to show off its features. There are typically two types out there: there are inexpensive versions, sometimes called

Read More »
Medical device monitoring vitals

IEC-62304 Medical Device Software – Software Life Cycle Processes Primer – Part 1

IEC-62304 Software Lifecycle requires a lot of self-reflection to scrutinize and document your development processes. There is an endless pursuit of perfection when it comes to heavily regulated industries. How can you guarantee something will have zero defects? That’s a pretty hefty task. The regulatory approach for the medical device industry is process control. The concept essentially states that if you document how every step must be completed, and provide checks to show every step has been completed properly, you

Read More »
Operating room filled with medical devices

IEC-62304 Medical Device Software – Software Life Cycle Processes Primer – Part II

Part I provides some background to IEC-62304. Part II provides a slightly more in-depth look at some of the specifics. The IEC 62304 Medical Device Software – Software Lifecycle Processes looks into your development processes for creating and maintaining your software. The standard is available for purchase here. So what activities does the standard look at? Here are some of the major topics. For any given topic, there will be a lot more specifics. This will look at a few

Read More »