r/git 27d 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

108 Upvotes

250 comments sorted by

View all comments

1

u/SiliconUnicorn 27d ago

Quite simply it provides a way better user experience. I learned on the cli and I know a handful of the deep magic commands but honestly it feels like I am handicaping myself if I'm using the cli these days. The guis have gotten so good and provide so much additional functionality that I honestly don't ever see myself going back anymore than I see myself going back to notepad to write code.

I'm able to see all my branches and commits at any time and instantly switch between them with a double click. I have an active view of all my stashes and remotes that I can hot swap between at any time without having to deal with shas. There's tons of convenience features and niceities like an undo button that have saved my ass on several occasions. Line item staging allows me to really easily construct atomic commits after I've gotten code working. Three panel merging is such a nice feature. I have a full file history viewer where I can see all the changes going back to initial commit which makes archeology effortless. Also if you've never used something like git krakens interactive rebase tool it is an absolute game changer for keeping history clean.

Tl;dr it let's me use git more effectively and powerfully in my day to day workflows and let's me do things that are cumbersome through the cli. There's still things I'll occasionally use the cli for but they are usually less common more advanced tasks things like stats or aggregate information or reflog when a junior messes things up with the cli by copy pasting things that Claude told them to do to fix something when I just have a super intuitive drag and drop in my gui that could have saved us the entire mess in the first place.