Should i use Gui or Terminal git?

I should use the git in terminal or learn the basics like cloning, configuring ssh, git add, commit and etc, the basics commands line used in git, then i’m suppose to download a Gui software for git?
Actualy i’m using just the terminal to manange my github repositories, is that a good idea or in now days the company’s just use Gui interfaces and they are good with that;
What knowledge i should aquire to get plenty about git and be eficiente using it?
Thank you all!

I can’t speak to what most companies do, but … Being proficient with the command line is always better than relying on a GUI to do it for you, and git is no exception, although I will admit that I use VSCode’s inbuilt git interface more than I use the command line.

I don’t think there is a ton you need to know about git that you can’t look up if/when you need those special use cases. In general, you need to know the concepts of branches, the head, checking out, staging, committing, remotes, pushing, and pull requests.

Codecademy has a basic git tutorial that isn’t bad, and will cover those points in the CLI.

1 Like

In my opinion, you should learn both. Day to day, I use the GitHub desktop client most of the time. It’s simple and elegant, and it allows you to review code easily before you commit. It will also link to your github account without you having to manually set up the SSH connection.

I disagree with vipatron here. You should use the best tool for the job. Git is complex, especially when you are working on a big project with multiple branches. It’s quite easy to screw up, and quite painful to fix things after you’ve screwed up. Having a visual representation of your repos and the state of the working directory is an absolute godsend. Unless you are a hardcore terminal junkie, it’s really a lot nicer.

The only thing I do regularly which you can’t do with Githug Desktop is make a stash - for example when you want to change branches without making a commit. For that, its useful to be able to step into the terminal. However, I think its good to learn the command line first so that you get a better lower level understanding of how Git works.

1 Like

I don’t think we disagree, I think I misspoke. When I said “rely”, I meant that not being able to use the command line limits one’s abilities. I meant that the basics should be in one’s toolbox, and after that, GUIs are fine to use. If they can’t do a thing, or aren’t available on the machine which one is using, then a working knowledge of CLI tools and the ability to read a man page or to google how to do things is going to get one out of those binds.


Thank you so much @arw2015 and @vipatron, both point of view really helpd.
I’m realy new on git, i allways heard about git but i avoided git for a long time. Some days ago I’ve just started to learn but got confuse about CLI git and GUI softwares.
I’ll learn the most used commands on git and try to avoid GUI clients for a while, because now i know that i can use git GUI day by day like @arw2015 .
But @vipatron helpd me to see that CLI can be an advantage if i have a very strict environment and cant use gui or even find help online.
Thank you so much guys!

1 Like

I personally use the terminal for all git commands, and only use tools for specific use-cases.

The terminal experience is the same on all platforms, on all machines, and is always available (for the most part hehe). The same can’t be said for any GUI experience. You can dive into using just the GUI and should be fine, permitting you have access to the GUI tool.

The main thing about committing (no pun intended :wink: ) to a specific tool to do your bidding is you become reliant on that tool, and it adds another layer of abstraction over what needs to be done, forcing you to learn more to do the same.

As said above I can’t talk about other companies, but I can talk about the general idea of adding more tools to your toolbox. The more extra tools you use (git-guis, frameworks, languages, operating systems, software, etc) the more you need to learn and potentially maintain. I believe the perfect tool is the tool that is flexible enough to handle future jobs, while being the simplest for the current job. This way you can get going right now, without becoming a crutch down the line.

I believe the git-cli is simple enough, once you get the concepts down, and obviously its powerful enough to handle any future job. As such its the perfect tool for the job. You can add more tools for extra fluff and usability, but generally the git-cli can do what you need, when you need it.

Finally, the one thing I will point out that is better to leave to GUI’s is comparing diffs. Using a CLI is possible, and totally fine, but having a GUI helps, especially since this is very much a visual task, rather than an action oriented one.


This is my perspective as a learner.

I learned git via the CLI first and then transitioned to Visual Studio Extension for GitHub. I had used GitHub Extension for VS for about a year.

This worked fine for my own projects but there is a serious lack of documentation for doing things on this GUI and it caused e problems when I worked in a team environment.

I have since gone back to using Git via the CLI because there is a wealth of information for it. I would recommend getting good with the CLI before venturing away from it.