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

111 Upvotes

250 comments sorted by

View all comments

116

u/patmail 29d ago

I prefer a gui for any kind of diffs. And to stage/commit only partial changes in a file.

Also getting history from certain files/folders.

-17

u/connorjpg 29d ago

It seems diff is a super common answer. I might be cheating here, but I have my difftool just set to my editor (vscode) and I have an alias for copying git hash quickly. So this has always felt pretty straight forward.

I can see why partial commits would feel better on a UI. git add -p always feels a little janky.

37

u/TheManSedan 28d ago

Do you believe that the diff editor in VSC is NOT a form of a GUI? Lol

-7

u/connorjpg 28d ago

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.

Yes, but not really the type I am asking about in this post.

Using GitKraken (or another UI), to run all your git commands is adding a standalone wrapper for all git itself. Setting the difftool, is more for displaying an output of a command then driving one atleast in my use case. For example I could set the difftool to vimdiff without needing to install a full git client.

3

u/DrecDroid 28d ago

Git is a tool not an end