git-fuzzy
git-absorb
git-fuzzy | git-absorb | |
---|---|---|
6 | 22 | |
2,282 | 3,191 | |
- | - | |
4.9 | 7.5 | |
6 months ago | 29 days ago | |
Shell | Rust | |
MIT License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
git-fuzzy
-
Ask HN: Best thing you've made in CLI
Mine: https://github.com/bigH/git-fuzzy
Bonus points if you have something you're currently working on.
-
Lazygit: Simple terminal UI for Git commands
I found lazygit after building something of my own thay solves some of these problems for me - git-fuzzy [0].
I'd like to share some of my thoughts about the comparison.
lazygit is a TUI for git which can behave in a standalone fashion. It's also designed to be quick and easy to use to perform quite advanced actions but ones that a seasoned git user may really want when working with git history. Since I'm already a seasoned git user the main feature I like about lazygit is the ability to surgically work with patches.
All that said, a majority of my workflow is tightly bound to git-fuzzy. I use its CLI composability quite heavily in combination with aliases and functions - git-fuzzy excels in this particular way (`git fuzzy log $(git fuzzy branch)` which I invoke using `gl $(gb)` by way of aliases). git-fuzzy is better for working with git-log or git-reflog and interactively searching them.
I personally quite like what I made (for myself), though I wish there was a world where I could quickly and easily mash both of these projects together.
[0] https://github.com/bigH/git-fuzzy
-
Ask HN: Most interesting tech you built for just yourself?
I'm slightly embarrassed that in terms of building personally relevant things, my proudest (digital) work is always shell scripts I use daily. Most of my personal projects are non-technical meat-space things like building with wood and the like. Here's some that I've open-sourced:
- A git interface using fzf that works pretty nicely and is very composable. https://github.com/bigH/git-fuzzy
- An interactive evaluator, perfect for interactive `sed`, `grep`, `jq`, etc. If properly configured, it'll keep history per command or using whatever key you give it. I find myself using it often with `jq`. https://github.com/bigH/interactively
There are many other shell functions/scripts that are interesting from my `dotfiles`. Particularly interesting snippets for anyone who wants them:
- A recursize `which` that follows symlinks and stops at a real file. https://github.com/bigH/dotfiles/blob/3d48792b4e910d2fc82504...
- A `watch` alternative that runs in the current shell. https://github.com/bigH/dotfiles/blob/3d48792b4e910d2fc82504...
- Ask HN: Have you created programs for only your personal use?
- Show HN: Surprising interactive `git log` search
-
Zsh Plugins Commit TOP
git-fuzzy : ⌛ - A CLI interface to git that relies heavily on fzf.
git-absorb
- Git Absorb
- Git-absorb: Git commit –fixup but automatic
-
OpenTF Repository is now Public
Nice, no need to look up past commits ! Didn't know about this, I had to look it up.
It's a separate project from git [0].
[0]: https://github.com/tummychow/git-absorb
-
Lazygit: Simple terminal UI for Git commands
Boy have I got the thing for you. git absorb - https://github.com/tummychow/git-absorb
The way to work with it is:
git add file1
- tummychow/git-absorb: git commit --fixup, but automatic
-
What do you use for git integration in neovim?
You can also manage via a holistic UI: - Bisection - Log and reflog, stashes - subtrees, submodules - certain third party subcommands like git-absorb, and extend it with your own - interact with issues and pull requests via forge - pretty much all of the hundreds of CLI flags via a modal UI that got generalized and extracted to a lib called transient - well-integrated diff and conflict resolution (which is mostly just smerge) - the rebase/cherry-pick workflows I liked the best, including support for --update-refs - at any time you can always press a key to see the raw commands and output that it's using, which taught me a ton of corner cases - IMO it has a great manual
-
Move File Changes From One Commit To Another
I sometimes use git-absorb to help me if I made a tonne of changes, and can't be arsed to manually make the fixups
-
Theodore Ts'o on how he uses Git when working on Linux (2017)
If done well, your git history carries the information of your process in a very similar way.
You have to be somewhere in the middle, so I'd say to do a semantic rebase at last step before merge. A fantastic tool that is not so well-known is git-absorb, which helps a lot doing that cleanly and automatically.
https://github.com/tummychow/git-absorb
-
Intern fixes 600 bugs but makes only 1 PR because it's more efficient.
Squash merge is like a sledge hammer, interactive rebase + git reset -N HEAD^ + git-absorb + git add -p (or even better, Magit) are surgical tools.
- git-absorb - git commit --fixup, but automatic
What are some alternatives?
zsh-autosuggestions - Fish-like autosuggestions for zsh
git-autofixup - create fixup commits for topic branches
zsh-syntax-highlighting - Fish shell like syntax highlighting for Zsh.
magit - It's Magit! A Git Porcelain inside Emacs.
base16-shell - Base16 for Shells
stgit - Stacked Git
awesome-zsh-plugins - A collection of ZSH frameworks, plugins, themes and tutorials.
git-instafix - Amend old git commits with a simple UI.
ranger - A VIM-inspired filemanager for the console
vim-fugitive - fugitive.vim: A Git wrapper so awesome, it should be illegal
judo - Simple orchestration & configuration management
transient - Transient commands