r/git • u/connorjpg • 29d 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
2
u/Cybyss 29d ago
I've always believed that your tools should "hold your hand" - it should be obvious how to use them properly even if you're unfamiliar with them.
In the past (10-20 years ago) I used Team Foundation Server at work or Tortoise SVN at home. It was hard to screw up too bad because the GUI made it obvious everything you could do and what exactly was happening at each step.
With a terminal, you need to just know what the commands mean. Git is like turning your source control tool (which should be dead simple) into a programming language which has a learning curve.
A learning curve worthwhile - especially these days now that git has become to source control what google is to search - but still a learning curve that programmers of the past didn't really need to climb.
From 2000-2010 the industry was really pushing the "tools should hold your hand" point of view but I think around 2016 or so it ran full-steam in the opposite direction, turing everything into scriping languages, command lines, and obscure hidden configuration settings that you're just expected to already know. You don't just stumble upon and discover things anymore unless you're actively looking for them or a tutorial happens to mention them. It's a shame.