Most active commenters
  • rkangel(3)

←back to thread

115 points NyuB | 14 comments | | HN request time: 0.206s | source | bottom

I use interactive rebase quite often, and particularly like the editor bundled with IntelliJ. But I do not always work with IntelliJ, and am not 'fluent' with Vim, so I tried to replicate roughly the same rebase experience within a TUI. I used a small TUI OCaml project i made last year.

The notable features are: - Move commits up and down, fixup, drop - Rename commits from the editor (without having to stop for a reword during the rebase run) - Visualize modified files along commits - 'Explode' a commit ,creating a commit for each modified file (a thing I found myself doing quite often)

Feedbacks (both on the tool and the code) and contributions welcome, hope it could fit other people needs too !

1. the_duke ◴[] No.41836624[source]
I think all of this is available in lazygit as well, which seems to still be way too unknown, despite the 50k stars: https://github.com/jesseduffield/lazygit
replies(6): >>41836678 #>>41836781 #>>41836904 #>>41837000 #>>41837050 #>>41837147 #
2. amar-laksh ◴[] No.41836678[source]
Bloody love lazygit!
3. ◴[] No.41836781[source]
4. jckahn ◴[] No.41836904[source]
lazygit is as necessary in my life as Vim. Absolutely incredible tool!
5. shafyy ◴[] No.41837000[source]
Fucking love lazygit
6. chb ◴[] No.41837050[source]
No other TUI for git is comparable to it.
7. rkangel ◴[] No.41837147[source]
All I want is a good TUI git log viewer. I'm perfectly happy to do all the operations on the command line, but navigating the log works well interactively (e.g. start as --first-parent, with single line entries and then be able to selectively show branch commits, and patches for commits).

I end up with a log view and then copy and paste commit hashes to do different things. Or use Sublime Merge which is great, but doesn't work over SSH.

replies(2): >>41837262 #>>41838948 #
8. keybored ◴[] No.41837262[source]
I was curious if tig(1) could do such a navigation. But I didn’t find anything.
replies(1): >>41837410 #
9. rkangel ◴[] No.41837410{3}[source]
tig seem pretty close. Does everything except toggling "first-parent". I might implement that bit.
replies(1): >>41837539 #
10. keybored ◴[] No.41837539{4}[source]
I don’t understand? It accepts all git-log(1) etc. arguments. `git --first-parent` for example. But I don’t see how to navigate from a merge commit to the second parent or something.
replies(1): >>41837743 #
11. rkangel ◴[] No.41837743{5}[source]
Yes, I've just discovered that in parallel. All I need for perfection is to be able to enable/disable that in the view dynamically (and the cursor stay in the same place).

But what's there is actually useful and I've installed tig properly now.

12. skydhash ◴[] No.41838948[source]
Not a great solution, but install emacs and then magit. A bit of a learning curve but works great.
replies(1): >>41840271 #
13. dingnuts ◴[] No.41840271{3}[source]
I love Emacs and magit and use them myself but this advice seems a little bit like telling someone looking to buy an airline ticket that the best way to get from coast to coast is to become a pilot

It's true that the juice may be worth the squeeze for some, but "a bit of a learning curve" undersells it a little bit, I fear LOL

replies(1): >>41840430 #
14. skydhash ◴[] No.41840430{4}[source]
That’s a strange parallel to make. It’s not Linux from Scratch. The basic can be taught in 5 minutes. Enough for the requested task.