GitKraken Blog

Releasing the Power of Git

Git CLI vs GUI

If you’re a software developer, there’s a good chance you’ve got an opinion on using the command line interface for Git operations. 

Many devs consider mastering the Git CLI a feat of experience and skill. They are extremely proud, and protective, of their CLI fluency. 

For some devs, it’s downright romantic; the command line interface offers an intimate experience with your computer. It’s like having a back-and-forth conversation with your machine. 

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 average Git CLIs: 

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

Git 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.  

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 doesn’t have to be one or the other! There is value to using a Git terminal with a Git GUI, literally side-by-side.

Improve Your Git CLI Experience with GitKraken

A common mantra for devs is “work smarter, not harder.” GitKraken provides the visual, intuitive advantages of a Git GUI and the lightning fast speed of a CLI, all in one powerful Git client! Let’s dive into how the GitKraken Git client can increase your productivity and improve collaboration and communication with your team. 

gitkraken-user-interface

Life’s too short to use the CLI without the additional visual context offered by GitKraken. Perform Git actions with more confidence as you verify exactly what’s happening to your files along the way.

Viewing Your Git Commit History

Let’s compare the experience of viewing the history of your Git commits in the command line interface vs the beautiful rainbow graph in the GitKraken Git client. 

In the CLI, the process of viewing your Git commit graph entails typing: 

git log --all --decorate --oneline --graph 

And then you get this… 

“ASCII art” on the left shows your Git branches and merges, alongside lines containing the SHA (Secure Hash Algorithm), which is supposed to provide you helpful context regarding which file changes have been made, but it’s hard to visually digest, especially at a quick glance. 

In GitKraken, you can clearly see when every commit was made and by whom; all of your Git 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…

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. 

Now, you can see a visual commit history your mind can quickly digest and understand, regardless of whether you choose to perform your Git actions in a Repo Tab or Terminal Tab in GitKraken. 

Git Diff View

Unavailable when you’re using the command line interface on its own, the GitKraken Git GUI offers the ability to add substantial context to each commit, which is easily visible for others working on your project. 

Commit information can be found in GitKraken’s 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 the code. GitKraken highlights the altered code, allowing you to find the context you need in seconds. 

One of the coolest features offered by the GitKraken CLI is the ability to interact with GitKraken’s legendary visualizations, like Git Diff and Blame. This is made possible by the custom gk commands which include: 

gk diff: see what has changed between two commits. 

gk blame: see what has changed in a file or Git commit and who made those changes. 

gk history: see the file history view.

The library of gk commands will continue to expand overtime as we evolve the GitKraken CLI

Git Merge Conflict Editor

One of GitKraken’s most powerful features is the merge conflict editor. There’s simply nothing comparable when using the command line interface on its own. 

When  you run into a Git 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 the GitKraken Git client 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 a paid GitKraken plan). 

Resolving a Git merge conflict without the visual and intuitive GitKraken Git client takes your focus away from an otherwise smooth workflow, risking loss of time and mental energy. 

Not only does GitKraken help you resolve conflicts, the tool can actually help you avoid them before they occur. 🤯 One of GitKraken’s Git for Teams features enables the ability to see when two team members are working on the same file, alerting you of potential Git merge conflicts with a caution ⚠️ icon in the left panel. 

Resolving merge conflicts in the command line without the help of a tool like GitKraken is difficult and time-consuming. Merge conflict detection and resolution make working with Git safer, easier, and more powerful.

Git Rebase with Less Risk

When it comes to performing a Git rebase, GitKraken can lend a helping hand, especially when things don’t go as planned. 

Identifying what went wrong can be extremely difficult if you’re only using the CLI, but the GitKraken Git GUI 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 Git rebase has failed and allows  you to quickly see why and how to resolve it.  

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, you can access the benefits of a Git CLI and GUI in the GitKraken Git client, so you don’t waste time rebasing the hard way or resolving conflicts that arise during the process. 

Embrace the Visual Benefits of a Git GUI

As the name implies, a graphical USER interface is focused on you, the user. GitKraken is designed with a heavy emphasis on user experience, whether you choose to perform your Git actions in a Repo Tab or a Terminal Tab. 

How many hours did you spend coding last week? Might as well enjoy them, right? With the additional visual context provided by GitKraken, you’re guaranteed to have a more enjoyable experience using Git, with the bonus of being productive and saving time.

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.

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 Git GUI is visual manipulation of screen space and the flexibility to utilize a mouse for clicking on the screen.

Remember those custom gk commands from earlier? We have a few more that allow you to customize the location of the GitKraken commit graph in relation to your terminal. 

Type gk graph into the GitKraken CLI to toggle the graph on and off, and add top, bottom, left, or right to change the position. 

We’ve already mentioned the next-level multi-color central commit graph, but the GitKraken Git client also has two side panels that add even more value to your visual experience and provide continuous context. 

The commit panel on the right is your hub for staging and committing changes. 

The left panel shows your branches, remotes, Git pull requests, tags, Git stashes, and submodules. You can easily filter files and other information by typing into the field at the top of the left panel. 

The Mouse is Your Friend 🐭

Many GitKraken users comment that they didn’t realize how much they missed using their mouse when using just the CLI until they experienced the functionality offered by hovering, clicking, and dragging-and-dropping in GitKraken. 

Furthermore, the GitKraken Git GUI does an incredible job of providing helpful, intuitive prompts for actions you can take at certain times during your workflow. Let’s review a few of the  most popular mouse-enabled functions in GitKraken. 

Drag-and-Drop to Push and Pull Changes in Git

Drag-and-drop one branch to another in GitKraken to generate a list of possible actions like merging, rebasing, or creating a pull request from an integrated Git repository on GitHub, GitLab, Azure DevOps, or Bitbucket

The GitKraken Toolbar = Easy Git Actions

The toolbar at the top of the GitKraken UI provides quick and easy access to several major commands including pushing and pulling. All you have to do is move and click your mouse! 

gitkraken-toolbar

We would be remiss if we didn’t mention the magical UNDO button here, which can be a lifesaver when you perform a Git merge incorrectly, or accidentally delete a range of commits, just to name a few examples.

You can also access the GitKraken CLI from the toolbar by clicking the terminal icon. 

Any keyboard aficionados out there? Don’t worry, we didn’t forget about you! You will also see a magic wand icon that allows you to open the GitKraken command palette, giving you access to an extensive inventory of shortcuts.

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.

Right-Click to Access Git Actions

When you right-click on any Git commit from GitKraken’s central graph, a drop-down menu of options will appear allowing you to create a Git branch, Git cherry pick, reset, or revert a Git commit. And, you can right-click anywhere from the right commit panel to create new files. 

Right-clicking on a local branch from the central graph, or a remote branch from the left panel, will give you a menu with numerous options like push, pull, set the upstream of the Git branch, delete the Git branch, rename the Git branch, and more.  The number of options in the context menu will depend on which branch you have checked out.

Auto-Complete and Auto-Suggest Git Commands

Something available exclusively in the GitKraken CLI is the magic of auto-complete and auto-suggest for Git commands

If you start typing a Git command in the GitKraken CLI, you will see a list of suggested operations populate. 

The auto-suggest Git commands feature will provide hints about what you can expect from each Git action, and can help you better understand parameters like -a or -M as you need to apply them.   

No need to remember commands or what they do; your new built-in CLI assistant will help you navigate the command line interface with increased confidence and knowledge at your fingertips. 

Life’s Too Short to Use the Git CLI without a GUI

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

Git can’t be “better” if you’re missing out on the countless benefits offered by the GitKraken Git client. Improve your workflow experience in the command line interface with increased productivity and improved team collaboration by using a Git CLI + GUI. 

GitKraken is the only Git client on the market that offers a Git-enhanced terminal with powerful visualizations, giving developers all the tools they need to make Git easier, safer and more productive.

Like this post? Share it!

Share on facebook
Share on twitter
Share on linkedin

Read More Articles

WordPress + GitHub

Learn how to work with WordPress, GitHub, and GitKraken to get the benefits of using Git for WordPress, including how to install a WordPress GitHub plugin.

Read More »
git-vs-svn

Git vs SVN

When deciding between Git vs SVN, there are a few things to compare, like Git and SVN commands and industry adoption (over 95% of developers worldwide are using Git).

Read More »

Git for Teams

See the powerful GitKraken team features that enable better workflows in Git for teams, including merge conflict detection and resolution and Git pull request management.

Read More »

Make Git Easier, Safer &
More Powerful

with GitKraken