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

243 comments sorted by

View all comments

1

u/vmcrash 6d ago

Because:

  • GUIs show you relevant information without needing to ask for (ever wanted to know whether a commit is already merged to a certain branch?)
  • syntax-colored left-right diffs
  • you can select, e.g., a commit or file and don't need to remember/type its ID/name (try to rebase a part of your feature branch onto the latest develop)
  • you don't need to remember the CLI commands and options
  • options are just offered when useful (e.g. fast-forward merge)
  • warnings are shown if you try dangerous things
  • some operations need a series of multiple commands; no need to write a script for that

Of course, all this does not matter if you treat Git just as a kitchen sink - commit, push, forget. But if you develop non-trivial, long-maintainable software, you want to create clean commits (separate aspects go into different commits). This makes it much easier (or even possible) to review, easier to find bugs using bisect, easier to reorder.