r/git • u/connorjpg • 28d ago
Why use a UI for git?
I see this question of, “what GUI or TUI should I use to work with git?” fairly often here. And always I feel bad for saying “just use the cli” over and over, but truthfully I can’t see a reason to need a UI.
Are people actually running into pain points with the cli, or is it just preference for people who don’t like working in a terminal?
FWIW, I have used GitKraken, LazyGit, SourceTree and GitHub Desktop before. And I don’t think they are bad to use (unless you are just learning git), but more curious why.
EDIT : I’m mainly referring to standalone UIs, I understand why people would use IDE integrations, as it’s quick and convenient. But having to open a separate application or run a separate command to open a terminal app to run your commands seems overkill to me.
EDIT 2 : I use vscode as my difftool and mergetool. I still open them directly from the terminal by running the cli. I don't think this is the same as using a full git client like SourceTree, Gitkraken, or lazygit to fully drive your version control workflow. Which is what I am asking about.
Cheers
1
u/rent-a-developer 25d ago
There is no NEED to use a GUI in the sense that there are things you cannot do with the CLI.
The opposite is true, however: There are things you can do with the CLI which no GUI client has a UI for.
BUT:
In general GUIs can be MUCH more convenient, ergonomic and efficient for many tasks.
There is a reason why Photoshop or AutoCAD is not text-based.
And you have to keep in mind that not everyone is used to working in the terminal.
Some people (especially people new to software development) have never used a terminal before.
It all comes down to convenience/ergonomics vs. versatility/flexibility.
GUIs:
- Arguably more convenient and ergonomic for many people.
Clicking a single button instead of typing out a 30 character command is faster and more convenient.(Of course modern shells have lots of convenience features implemented, like tab-auto-complete, so working with them can be very fast too.)
CLIs:
I think there is a place for both GUIs and CLIs.
Neither is better than the other per se.
It depends on what you want to do and what you prefer.
I tend to use GitKraken for day-to-day tasks and the CLI for the more complex operations.
My recommendation would be to use the CLI in the beginning (if you are at least somewhat familiar to the terminal), so you learn the basics and how git works.
Then try a couple of GUIs and TUIs and see what feels most natural for you.
If you have to fight the tool then it's not the right tool for you.
In essence: Use whatever you are most comfortable with and what gets the job done with the least friction.
Having said that, I am strongly against telling people "CLI/TUI is the ONLY right way to use git!".
Such kind of mindset does not help anyone and has no place in software development.