[HN Gopher] Gitui: Terminal UI for Git
       ___________________________________________________________________
        
       Gitui: Terminal UI for Git
        
       Author : stillicide
       Score  : 111 points
       Date   : 2022-09-16 09:32 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | eterps wrote:
       | Any lazygit users that switched over to gitui? If so, what made
       | you switch?
        
       | zuhsetaqi wrote:
       | Lazygit is an alternative which worked great so far for me
       | 
       | https://github.com/jesseduffield/lazygit
        
         | Zizizizz wrote:
         | 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 wrote:
         | 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.
        
         | zmmmmm wrote:
         | 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 wrote:
         | 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.
        
           | zmmmmm wrote:
           | I use tig intensively and it does sometimes have little
           | freezes etc but only on giant repos AND where the file system
           | is slow / busy. Its a 2nd or 3rd order type problem to me. If
           | you work all the time on that type of repo it might be more
           | important.
        
       | jblecanard wrote:
       | Any tig users here ? I'm happy with it since then, looks like the
       | feature set is pretty similar
        
         | vlunkr wrote:
         | Tig combined with this vim plugin is big part of my workflow:
         | https://github.com/iberianpig/tig-explorer.vim
        
         | samuell wrote:
         | 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.
        
         | georgyo wrote:
         | Happy tig user. Viewing git history without it is painful.
        
         | rvz wrote:
         | Nothing wrong with tig. It just works.
        
         | sys_64738 wrote:
         | Yep tig is my world.
        
         | petepete wrote:
         | 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.
        
         | synergy20 wrote:
         | 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.
        
           | zmmmmm wrote:
           | looks like there's a key binding file to enable vim bindings.
           | 
           | Having said that, I'm also a tig user and at least at first
           | glance, I prefer its simplicity. Gitui presents a huge amount
           | of info on the default screen and spends quite a lot of real
           | estate drawing borders around everything. Tig just takes me
           | straight to the commit history, full screen and then I have
           | single key actions to get to other views.
           | 
           | The only thing I don't like with Tig is how little it binds
           | to keys with the expectation that you set up your own
           | mappings to git commands. I would prefer it baked more of
           | them in so they would be standard and documented ... but that
           | is a minor complaint.
        
       | RootKitBeerCat wrote:
        
       | RyEgswuCsn wrote:
       | 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?
        
         | stereosteve wrote:
         | 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
        
         | drdec wrote:
         | 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).
        
       | leephillips wrote:
       | 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 wrote:
         | 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.
        
       | layer8 wrote:
       | So, the main motivation/benefit over alternatives like tig and
       | lazygit is better responsiveness and fewer crashes? Or are there
       | other considerations?
        
       | lysium wrote:
       | 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.
        
       | snicker7 wrote:
       | Magit is an excellent and widely used Git TUI.
        
         | beepbooptheory wrote:
         | 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 wrote:
         | But only available in Emacs
        
           | ogogmad wrote:
           | What's the learning curve if you're not an Emacs user?
        
             | lvass wrote:
             | It's quite linear if you're using the manual / C-h prefix.
             | More like a spiral if you're like me and keep reaching for
             | external packages to solve problems you're not sure you
             | have. Either way it's really worth it.
        
             | c54 wrote:
             | Emacs with spacemacs or doom-emacs's spacemacs layer (both
             | lf which use vim bindings aka "evil mode") is quite similar
             | to vim as far as text editing goes. For me this made the
             | initial learning curve pretty approachable.
        
             | dan-robertson wrote:
             | I suspect it's possible to only learn a few things, e.g.
             | C-g to get unstuck, C-x C-c to quit, some config to have a
             | key to open magit status or a clever bash alias, and then
             | the keys in magit for which there is documentation (regular
             | Emacs is also documented) and semi-documented in that when
             | you e.g. press c to start a commit, a pop up appears with
             | eg flags you can set or commit-like actions like
             | reword/amend.
        
           | ckolkey wrote:
           | And neovim (via neogit)
        
             | dan-robertson wrote:
             | Neogit is a magit clone rather than secretly actually using
             | magit code, right?
        
               | lvass wrote:
               | At least until they add an elisp interpreter to vim.
        
             | jeremyjh wrote:
             | Do you happen to know if neovim has a helm-ag analog? For
             | the most part that and magit are the only two things I use
             | in emacs anymore and would love to try something lighter
             | weight.
        
               | lvass wrote:
               | There's vim-grepper but nothing really has a selection
               | interface quite like Helm.
        
               | _bohm wrote:
               | I use telescope.nvim + ripgrep for what I believe is the
               | same functionality
        
       | hyperhopper wrote:
       | Funny. I thought 'git' was a terminal UI for git.
        
         | chrismorgan wrote:
         | No, it's a command-line interface. For a decent illustration of
         | the difference, see https://en.wikipedia.org/wiki/Text-
         | based_user_interface and https://en.wikipedia.org/wiki/Command-
         | line_interface.
        
       ___________________________________________________________________
       (page generated 2022-09-17 23:00 UTC)