DEV Community

loading...
Cover image for Git GUI vs Command Line

Git GUI vs Command Line

Maegan Wilson
I am an independent iOS developer and Apple product enthusiast.
Originally published at cctplus.xyz ・3 min read

Git GUI vs Command Line

In the past couple of posts, I’ve been using the command line to interact with Git, but you don’t have to do that! You can actually use an application to do git commands. If you haven’t guessed it by now, today, we are going to talk about using an app for git versus using the command line.

Now, you might be wondering, why would you want to use an app to interface with Git instead of the command line?

Well here are some reasons:

  • Graph view of commits
  • Graph view of branches
  • See the changes and explore them more

Fork

It’s really nice to be able to see all of this in a more user-friendly way. Yes, you can see this all through the command line, but it can be a bit easier to read in an app also might be a bit easier to use. Especially because you don’t have to remember the commands.

Most Apps will also let you set up your remote server account like GitHub or GitLab so that you can clone from the app which also avoids the command line.

There are so many options when it comes to using an application for Git. The three that I’ve used are

  • Fork
  • GitKraken
  • Tower

They all work on Windows or Mac and can be used together if you want. Each app offers something a little bit different, so I highly suggest you try them out and see which one you like best. I like Fork the best since it can handle private repositories for free. To support development, the developers do charge around $50, but you can bypass that if you want.

Now, how does the app workflow compare to the command line?

Well, the workflow is the same. You still add your files, commit the changes with a message, and push them to the remote server. There are just some buttons to hit instead of typing the commands. Let’s look at how Fork does it since that’s what I use as my client.

First, we need to go to the repo.

Then to add files, Fork actually has us check them to acknowledge the change and then stage them.

Now, we add our message and hit commit!

That’s pretty easy to do on the command line even, but where I think Git Clients/Apps/GUIs whatever you wanna call them really shine is when you need to do something a bit more complex like switching branches and adding tags, which I use a lot in my workflow.

If you need a reminder on how to switch and create branches via the command line, check out this post about branching strategies.

Here’s how I’ll create a branch in Fork. It’s relatively similar to all the other apps.

  1. Right-click on the current branch
  2. Choose create branch
  3. Give a branch a name
  4. Click create

Now, isn’t that pretty easy?

These are some of the niceties that come from an app.

Which should you choose?

Well, that’s not really a question I can answer for you, but I can say I still use the command line regularly even if I have an app installed. It’s a “what tool will do the right job” type answer. If you have a preference, then let me know in the comments below!

If you got something out of this post, make sure to let me know in the comments below!

Discussion (4)

Collapse
darkain profile image
Vincent Milum Jr

My personal fav, and have used it for nearly a decade now, is TortoiseGIT. But sadly, it is a windows-only utility. It is, however, very cleanly integrated into the OS. I don't use it for its graph visuals though, for that instead I use Sublime Merge, but that is something I do far less frequently. For just committing/pushing/pulling/diffing/merging, TortoiseGIT is very clean and simple.

Collapse
maeganwilson_ profile image
Maegan Wilson Author

A lot of people at my company use TortoiseGIT, so I’ve heard of it. I just never checked it out due to the fact I mainly use macOS.

Collapse
maeganwilson_ profile image
Maegan Wilson Author

I’m going to have to look into this more than the 5 second glance over Magit’s website. This looks interesting! Thanks Jean-Christophe!