top | item 32864036

GitUI: Terminal UI for Git

187 points| stillicide | 3 years ago |github.com

90 comments

order

jblecanard|3 years ago

Any tig users here ? I’m happy with it since then, looks like the feature set is pretty similar

synergy20|3 years ago

tig rules.

gitui does not support vim keybinding for me, or I did not find out how.

rust's size always surprise me:

tig -- 600KB, gitui: 11MB

similar size pattern for other utilties, in general, rust executable is about 200x larger than its c/c++ peers, and, they all linked to similar c/c++ libraries, looks like rust stdlib is pretty big in size to me.

samuell|3 years ago

Tig is just awesome. So well thought out, with sensible shortcuts for every relevant action in each context. Must have gone a lot of thought into it.

petepete|3 years ago

I use tig daily. I've never used anything I like as much for quickly browsing through commits in a repository or staging individual hunks.

georgyo|3 years ago

Happy tig user. Viewing git history without it is painful.

mcbuilder|3 years ago

I used tig way back in the day, but I have found `magit` to be superior and one of the most useful emacs packages that I use daily.

rvz|3 years ago

Nothing wrong with tig. It just works.

zuhsetaqi|3 years ago

Lazygit is an alternative which worked great so far for me

https://github.com/jesseduffield/lazygit

zmmmmm|3 years ago

Just tried Lazygit and one thing that stands out is it is the first of these tools that offers some kind of support for submodules (like, I can select a submodule and then navigate into that context and back out again).

It's great that all these options are becoming available and bringing ideas into the mix.

thamer|3 years ago

Gitui's README mentions that Lazygit freezes and sometimes crashes parsing large repos, taking the example of the linux repo, and reports that Gitui is more than twice as fast: https://github.com/extrawurst/gitui#3--benchmarks-top-

At least for the stability issues, does this match your experience?

I see others have mentioned tig here as well, I'd be curious to hear if they also find it somewhat slow and unstable. Gitui's linux benchmark lists it as being almost 11 times faster than tig.

Zizizizz|3 years ago

I've used this non stop for months now, it's so good! You can get it from neovim as well as your git plugin and merge resolver if you don't want to use fugitive or something else. https://github.com/kdheepak/lazygit.nvim

talkingtab|3 years ago

I'm a long time user and big fan of lazygit. It substantially increases my productivity for the most common tasks. I am a sole developer working on multiple web site projects.

The design works very very well for me.

davidhay|3 years ago

Same, never had a problem with lazygit.

fny|3 years ago

At some point I often wonder why people are so damn intent on living in their terminals. This is an ASCII GUI with the exact same feature set that `git cola` offers which is extremely lightweight and keyboard friendly. The only difference is you can't click on something if you forget the keyboard shortcut.

mchaynes|3 years ago

tmux is my main reason. i love having sessions and being able to have the same setup regardless of whether i’m in an ec2 instance or my macbook

samgranieri|3 years ago

I really enjoy having multiple apps and editors running in tmux splits. I’m very fast in it and it helps keep me focused.

snicker7|3 years ago

Magit is an excellent and widely used Git TUI.

beepbooptheory|3 years ago

Have relied on magit for so long now I am not even sure if I "know git" anymore. Definitely can't imagine doing a complicated rebase without it, or (ab)using stashes so much.

max_hammer|3 years ago

But only available in Emacs

chlorion|3 years ago

Magit also functions as a proper git GUI with the Emacs GTK interface.

Just wanted to mention this in case anyone was under the impression that Magit was TUI only!

ar_lan|3 years ago

I’ve heard great things, but the Emacs dependency is a huge turn off.

LoveMortuus|3 years ago

I'm by no means an expert, but is it really that hard to remember clone, pull, commit -a, push and maybe something else you'd need. That you need a GUI? And even then you can either use the help or man or just Google it and you'll remember the right command sooner than later.

Or am I missing some quite important? I've been using this for most of the stuff that I do in github and it seemed to be enough.

I use these on my Chromebook, but on my stationary computer I just use the integration in VS Code.

jlarocco|3 years ago

> Or am I missing some quite important?

I feel like you are. The operations you mentioned - clone, pull, “commit -a”, and push - are trivial. Nobody needs a nice UI for those.

But in real day-to-day use, I’m branching, merging, creating and applying stashes, cherry picking, rebasing, browsing the repo history, browsing specific file histories, diffing across branches, selectively committing specific changes in a file, etc. and it’s convenient to have a nice UI for the more advanced use cases.

eyegor|3 years ago

People who use commit -a terrify me. The value of a tool like this is it makes it trivial to review changes, stashes, etc. in a convenient way without needing to look up commands. This tool in particular is built to handle huge repos which most other front ends straight up can't. And it does it with a 1mb binary and almost no ram.

rgoulter|3 years ago

> Or am I missing some quite important?

Speaking as to "why would you not just use command line git, or VSCode integration".

Two aspects: Speed, and discoverability.

These are two things that magit massively improves upon the command line.

e.g. to make the commit, in magit, it's the key sequence "<Spc> g g" (to open magit) then "c c" to commit. (Being able to quickly do this from the same place you edit code is very convenient).

In terms of discoverability, magit shows me the common options for commands (e.g. it shows `-a autostash` for git pull), or other commands which might be useful that I've not used (like git worktree).

kspacewalk2|3 years ago

I use a git GUI (Sourcetree) as a time saving tool to visualize the git repo, browse through commits to view changes, diff non adjacent commits or branches, etc. I have never used it to actually alter the state of my repo, all that is much easier on the command line for me. But TUI is woefully inadequate for getting the hang of even a moderately complex repo that I'm trying to understand.

user3939382|3 years ago

I use an alias like this:

> gac Update controller

which means “git add all and commit with this message” very rarely do I make a mistake with this. Maybe once every 3 weeks, in which case I just restore the file I accidentally added.

cerved|3 years ago

no but it (at least tig) facilitates navigating the graph, partially staging etc.

leephillips|3 years ago

I use fugitive, a Git interface that operates from within [n]vim. There are many advantages to using Git from within an editor, especially as so many Git operations land you in an editor in any case; this way, you stay in your editor context, so, for example, you get completions from your other windows when composing your commit messages.

suprjami|3 years ago

I have used vim-fugitive for years to read large and small codebases. Its blame and re-blame interface is the best I've found.

eterps|3 years ago

Any lazygit users that switched over to gitui? If so, what made you switch?

lillecarl|3 years ago

Started with lazygit, but read about gitui at essentially the same time. Got used to gitui and it's speed so I stayed. Lazygit is pretty great too.

I mostly use gitui for staging things, it supports file, hunk and line staging, it's meant to compliment git cli, not replace it.

I also use it to manage tags.

RyEgswuCsn|3 years ago

Is there a Web UI equivalent for tools like this, where one can spin up a web server pointing to a git repo on the server and do commit, diff, merging, graph visualisation etc. through a web interface?

drdec|3 years ago

Not exactly what you are looking for, but github.dev provides much of this for repos hosted at github. Press . while accessing the repository at github.com to jump right into github.dev (this appears to require me being logged in so it's possible I configured this somehow).

stereosteve|3 years ago

I just started working on a project with this use case in mind.

So far just a "browse" experience somewhat like GitHub, but uglier.

Soon want to add ability to commit, similar to GitHub desktop, but without electron.

Very WIP atm but hoping to work on it some this week.

https://github.com/stereosteve/git-goggles

lysium|3 years ago

Looks great and fast! Nice work! I'm wondering if the missing features for 1.0 will keep it fast. (The first thing I wanted to do is search the log and see the graph :-). Does not look like it.

layer8|3 years ago

So, the main motivation/benefit over alternatives like tig and lazygit is better responsiveness and fewer crashes? Or are there other considerations?