1. 15

  2. 7

    Love it. You should definitely checkout magit for some UI ideas. It’s superior to everything I’ve used in that sense, and I think anyone that has used it feel the same.

    1. 5

      Link for convenience: Magit, a Git porcelain inside Emacs

      1. 3

        Yup, I don’t really use Emacs these days for editing, but I have an mg alias in my shell which launches magit for many cases where just git is inconvenient (like, dozens of times per day).

        1. 2

          What use cases are that so that I can see what to implement next in gitui?

          1. 3
            • interactive rebasing
            • instant fixup (fixup commit and rebase folded into a single operation)
            • by hunk or by line staging
            • composing longer commit messages
            1. 2


              • interactive rebase was on my list
              • instant fixup I need to research what that is
              • by hunk is supported, but by line not, need to figure out how to do that intuivly
              • better support for longer commit messages I added: https://github.com/extrawurst/gitui/issues/46
              1. 2

                Oh, I’ve recalled one more thing which was hugely important when I was learning magit. It displays the actual git flags which are activated by each shortcut. You can see it on screenshot (shamelessly plugs his own tui rant) here.

                1. 2

                  Really interesting but gitui is not using the git shell under the hood so I think that is not really a matching purpose I am afraid

        2. 1

          (Athor here) Looks definitely interesting, but I think I gotta try it because the documentation looks complicated on first glance. My focus is simplicity and something that does feel like a GUI even though it’s in the terminal.

          1. 5

            Definitely give it a shot. Specifically I recommend you try the interactive rebase which you mentioned. It makes it trivial. Everything is one key press away.

            I can say it’s probably my favorite piece of software I get to use.

            Either way nice work!

        3. 3

          Nice, I’ll be sure to check it out. I’ve been hooked on tig so it will be nice to see how gitui compares.

          1. 2

            I’m too comfortable with the native git CLI to use this (or similar things), but I’ll admit that this does seem pretty good. I might try it as a replacement for gitk, though, which I use from time to time.

            1. 2

              I hadn’t heard of lazygit before, a TUI you list as an inspiration. gitui doesn’t have the features I need yet, but it looks like lazygit, which is more mature, does. For example, lazygit handles a lot of interactive rebase cases more smoothly than either my main Git GUI Tower or git rebase. So thanks for the pointer.

              They are both awesome and inspired me but either I found them too slow/resource-hungry in some areas or too complicated to use and navigate in others. (maybe a little NIH-syndrome as well).

              Can you go into more detail about what problems lazygit has in the “too complicated to use and navigate” category? Have you planned how you will avoid those interface problems in gitui yet?

              1. 2

                Cool that lazygit works good for you.

                My vision for gitui is to make it a terminal tool, that is still as easy to learn as a regular GUI. Where I find most alternatives are embracing the ‘I am a terminal tool, expect to be confused by tons of shortcuts and a man page to learn them’-style. I want to have a clean UI that only offers the kind of shortcuts that are applicable in the current situation so that they always fit into a quick-bar on the bottom. simplicity and speed are my motivations. hope that makes any sense :)

                For me it was too much of a memory/cpu hog and too slow on big repos. As I am mostly on battery I cannot afford that. Opening lazygit in the linux repo, keeps 1 core busy permanently, fills up to 3 Gig of Ram when scrolling through the commits and grinds to a halt once it parsed all 900k commits.