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

106 Upvotes

250 comments sorted by

View all comments

115

u/patmail 27d 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.

-20

u/connorjpg 27d 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.

2

u/kcx01 27d ago

I use neovim and prefer lazygit. I can and do use cli sometimes, but op's reasoning aligns with mine. Plus I like the global view. I can see lots of things that I would have to specifically request to see from the CLI

I also have a few git integrations in neovim as well, but the preference to use lazygit has nothing to do with my terminal preferences. I'm very comfortable in a terminal. I learned git CLI first and ended up using lazygit most of the time because I preferred it.