[HN Gopher] Forgit: A utility tool powered by fzf for using Git ...
___________________________________________________________________
Forgit: A utility tool powered by fzf for using Git interactively
Author : kdheepak
Score : 55 points
Date : 2022-05-17 17:54 UTC (5 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| user3939382 wrote:
| This is awesome although I solve these problems a different way
| for my workflow. If I really need to dive into git I use Tower.
| For adding to a commit, I basically never need to add anything
| less than everything. In 1 step I add everything and commit with
| a message without needing quotes: # git config
| alias.add-commit !git add -A && git commit #
| .bash_profile # Use like: gac this is my commit message
| function gac () { git add-commit -m "$*" }
| WalterGR wrote:
| That UI is beautiful! What's their special sauce?
| metadat wrote:
| * TUI, aka Text UI
| WorldMaker wrote:
| A nice Terminal color theme and a good font with PowerLine
| symbols.
| WalterGR wrote:
| Which UI toolkit?
| WorldMaker wrote:
| Skimming the code, it's a shell script so it is mostly
| bespoke and much of it just git's built-in color
| formatting! Also presumably some of it is fzf's UI, too.
| There's an even less documented helper ruby app called
| "emojify" from the same author that I couldn't quite figure
| out what it does, given the name I assume it converts
| something to emojis, but what and where I didn't ascertain
| in a brief skim.
|
| (ETA: There's some confusion here too, because some of
| those screenshots is a likely unrelated "status bar" tool
| and a Starship-like prompt. Might even be Starship.)
| nittanymount wrote:
| this is nice with the TUI, but need to remember these shortcut
| commands, maybe will get used to or remember them after start
| using them...
| gremlinsinc wrote:
| you could create a bash function that echo's out the aliases,
| or perhaps feed it a keyword and it greps the commands and only
| gives you the ones you need.
|
| something like: fgit(){ fgcommands
| = "git commit...\n,git rebase...\n" # you want one
| per line, so I'm not perfect at bash, w/out looking up how to
| do it I think you could cat it into the commands. if
| [ -z $1 ]; then echo "$fgcommands" #
| returns all commands else echo
| "$fgcommands" | grep commit" # returns all commands
| with commit in. fi }
|
| You could even have more fun w/ it by creating some script that
| maybe remaps all your git commands so whenever you manually do
| git commit <flags> -- it'd run the command then also convert
| your command to a string, and run each word matching like
| commit, rebase, etc through fgit, and create some sort of "you
| could've done this instead"... I'd love if zsh had more things
| like that, but I only recently switched to zsh and oh-my-zsh is
| it so much better.
|
| Think of this like in vscode when you use the command search,
| and it shows the keybindings next to it, so you can learn to do
| it better...
| OJFord wrote:
| Nice. I do something similar with simple scripts for fuzzy
| finding a file/sha, and then call them in place of one being
| expected, but this might tempt me to let someone else maintain it
| (with undoubtedly more thought and time put into it by a long
| shot) instead :)
|
| https://github.com/OJFord/fzutils
|
| I dislike all the short acronym-style aliases though; (I know
| it's fairly popular with git) not immediately obvious if it's
| supported to just use the usual commands.
| awsation wrote:
| I use Tig [0] and highly recommend it. I do cherry picks there
| view blames, git greps, among other things.
|
| [0]: https://jonas.github.io/tig/
| kbd wrote:
| If anyone cares, I do something similar with my git aliases:
| https://github.com/kbd/setup/blob/master/HOME/.config/git/co...
|
| So, "ga" similarly gives a fuzzy finder of files to "git add"
| that are actually in git status, "gcp" lets me cherry pick one or
| more commits from a branch where both the branch and commits are
| picked with fzf, and so on.
| WalterGR wrote:
| Have you published those tools? I don't find anything relevant
| via Googling nor searching your repos.
| [deleted]
| travv0 wrote:
| What tools? That's a git config file.
| WalterGR wrote:
| `ga` and `gcp`. Are those part of git?
| travv0 wrote:
| I assumed those were aliases for `git a` and `git cp`
| which are in the config file.
| WalterGR wrote:
| No, they're not in the config file.
|
| `gcp` and `ga` are part of forgit, not OPs config. That's
| why searching the repo didn't find anything. From the
| phrasing, I thought they were part of OPs repo.
|
| `gcp` https://github.com/wfxr/forgit/search?q=gcp
|
| `ga` https://github.com/wfxr/forgit/search?q=ga
| travv0 wrote:
| See https://news.ycombinator.com/item?id=31416448
| kbd wrote:
| The only part I left out is that as part of my shell
| config I automatically alias all my short git aliases (as
| well as a few special cases). So "gcp" -> "git cp" etc.
|
| https://github.com/kbd/setup/blob/d95653da5ab367b1e628b97
| 537...
___________________________________________________________________
(page generated 2022-05-17 23:01 UTC)