8 ms·
GitUI: Terminal UI for Git
- eterps 4y agoAny lazygit users that switched over to gitui? If so, what made you switch?
- lillecarl 4y agoStarted 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.
- lysium 4y agoLooks 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.
- leephillips 4y agoI 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 4y agoI have used vim-fugitive for years to read large and small codebases. Its blame and re-blame interface is the best I've found.
- NateEag 4y agoHave you used magit? If there's a better one out there than magit's, I want to know.
- suprjami 4y agoI haven't, but I don't use emacs. Crash course: `mkdir -p ~/.vim/pack/git/start` `git clone https://github.com/tpope/vim-fugitive https://github.com/tpope/vim-fugitive ~/.vim/pack/git/start/vim-fugitive` Open a file under version control and `:Git blame` The commit shas, author, and date appear in a window to the left. `Ctrl+w Ctrl+w` to switch windows. Both windows scroll up and down together. Pressing `o` on a commit sha opens the full commit log and patch in a window below. Close this with `:q` Pressing `~` on a commit sha re-blames on parent (git's ~) Pressing `P` on a commit sha re-blames on parent (git's ^) There's also a set of (old and a bit outdated) Vimcasts on fugitive, episodes 31-35 http://vimcasts.org/episodes/archive/ http://vimcasts.org/episodes/archive/
- NateEag 4y agookay, thanks very much for the overview!
- snicker7 4y agoMagit is an excellent and widely used Git TUI.
- max_hammer 4y agoBut only available in Emacs
- peoplefromibiza 4y agoAFAIK a magit stand alone client exists Anyway, I'm a happy user of this for VS Code https://marketplace.visualstudio.com/items?itemName=kahole.magit https://marketplace.visualstudio.com/items?itemName=kahole.m...
- ogogmad 4y agoWhat's the learning curve if you're not an Emacs user?
- c54 4y agoEmacs 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.
- lvass 4y agoIt'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.
- dan-robertson 4y agoI 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.
- hyperhopper 4y agoFunny. I thought 'git' was a terminal UI for git.
- chrismorgan 4y agoNo, it’s a command-line interface. For a decent illustration of the difference, see https://en.wikipedia.org/wiki/Text-based_user_interface https://en.wikipedia.org/wiki/Text-based_user_interface and https://en.wikipedia.org/wiki/Command-line_interface https://en.wikipedia.org/wiki/Command-line_interface.
- deleted 4y ago[deleted]
- zuhsetaqi 4y agoLazygit is an alternative which worked great so far for me https://github.com/jesseduffield/lazygit https://github.com/jesseduffield/lazygit
- zmmmmm 4y agoJust 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.
- davidhay 4y agoSame, never had a problem with lazygit.
- Zizizizz 4y agoI'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 https://github.com/kdheepak/lazygit.nvim
- thamer 4y agoGitui'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- 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 4y agoI 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 4y agoAny tig users here ? I’m happy with it since then, looks like the feature set is pretty similar
- georgyo 4y agoHappy tig user. Viewing git history without it is painful.
- samuell 4y agoTig 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.
- sys_64738 4y agoYep tig is my world.
- synergy20 4y agotig 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 4y agolooks 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.
- 4y ago
- RyEgswuCsn 4y agoIs 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 4y agoNot 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 4y agoI 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 https://github.com/stereosteve/git-goggles
- zmmmmm 4y agoIt doesn't do half of those things but somewhat amazingly there is one built into Git itself: https://git-scm.com/docs/gitweb https://git-scm.com/docs/gitweb
- darkvertex 4y agoSounds like you want "ungit": https://github.com/FredrikNoren/ungit https://github.com/FredrikNoren/ungit
- layer8 4y agoSo, the main motivation/benefit over alternatives like tig and lazygit is better responsiveness and fewer crashes? Or are there other considerations?
- RootKitBeerCat 4y ago
- h3rsko 4y agoShameless plug, but i built something similar a few years ago: https://github.com/GitGud-org/Gitgud https://github.com/GitGud-org/Gitgud
- fny 4y agoAt 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.
- samgranieri 4y agoI really enjoy having multiple apps and editors running in tmux splits. I’m very fast in it and it helps keep me focused.
- mchaynes 4y agotmux 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
- tzury 4y agoI use tig (git backwards) https://jonas.github.io/tig/INSTALL.html https://jonas.github.io/tig/INSTALL.html
- LoveMortuus 4y agoI'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.
- user3939382 4y agoI 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.
- eyegor 4y agoPeople 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.
- numtel 4y agoDefinitely agreed. My workflow for a commit is always: git status git diff HEAD git add (usually -u) git commit I catch so many mistakes checking the diff before committing. Just seeing the code in a different context helps things pop up.
- jononor 4y agogit add -p is my default. Usually what I have been up to belongs in 2-3 separate commits, each with a good commit message. For example a bug found and fixed while developing a feature always goes in its own commit.
- 4y ago