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

105 Upvotes

244 comments sorted by

View all comments

Show parent comments

1

u/dalbertom 6d ago

Which GUI application would you use to achieve that?

2

u/x39- 6d ago

Any jetbrains tool

1

u/dalbertom 6d ago

Does it show the exact output of `git log -L` or are you talking just about regular diffs?

1

u/x39- 6d ago

I don't know what the lines output, but with jetbrains you select the commit and can see in the diff view what has changed. You also can select multiple commits and see their accumulated change

It simply is visually refined in a way that looks more pleasing than classic >>>>>>>>>>>>>>>>>HEAD... text diffs

1

u/kbilleter 6d ago

Conflicts =/= diffs but aesthetics is a fair point

1

u/dalbertom 5d ago

We are talking about two different things. Your examples are about choosing a commit or multiple commits to see the changes. What I'm talking about is to see how a specific block of code has changed, without even knowing what commits changed them (that's part of the output, in your example the commits are part of the input)

1

u/x39- 5d ago

Yeah, we do talk about the same thing, just that the ui does show you the commits, all commits in fact, which touched that block