the ultimate compact fzf gh extension
Installation β’ Usage β’ Customisation β’ Feedback
gh-f
is the ultimate, compact and snappy fzf
extension for gh
cli. It addresses most of your daily GitHub workflow, if not all of it: f
stands for filter, fzf or fomething felse.
Installation
gh extension install gennaro-tedesco/gh-f
Requirements
- fzf
- gnu core utils
- bat (optional, if not detected it uses
less
as a pager, instead)
Usage
Get started!
gh f
shows the help page. Or watch it in action:
or a quick replay
gh f [cmd]
takes one of the following arguments or flags
command | description | binds |
---|---|---|
-a, adds | add files to staging area | enter: add files to staging area ctrl-d: diff selected file |
-r, runs | show github workflow runs and filter logs | enter: search run logs |
-g, greps | grep in files in revision history | interactive prompt: insert regex, select files, show pattern in revision history |
-p, prs | view, diff and checkout PR | enter: checkout selected PR ctrl-d: diff selected PR ctrl-v: view selected PR |
-b, branches | checkout and diff branches | enter: checkout selected branch ctrl-d: diff selected branch ctrl-x: delete selected branch |
-l, logs | view, diff and checkout from logs history | enter: checkout selected commit ctrl-d: diff selected commit ctrl-v: view commit patch |
-t, tags | checkout and diff version tags | enter: checkout tag in detached HEAD ctrl-d diff against current branch |
-s, search | search issues in any repository | interactive prompt: follow instructions |
-m, myissue | search issues you opened somewhere | interactive prompt: follow instructions |
-k, pick | cherrypick files between branches | enter: checkout cherrypicked files from branch |
-e, envs | show git config list | enter: print selected config variable |
-h, help | show help page | |
-V, version | print the current version |
Most commands follow the semantics of git
standard instructions (so that you can remember them easily), only we append an s
to avoid conflicts, should you have those commands lying around in the shell as aliases or for scripting.
Customisation
If you want to skip typing gh f
before each command you may alias it directly, for instance
gh alias set prs 'f -p' # show PRs
gh alias set l 'f -l' # show git logs
and likewise for the rest.
The prompt colours are defined via their ANSI sequences here: change yourself accordingly, if you like different ones. Moreover notice that the rendering of text in the fzf
preview window follows the options set in the FZF_DEFAULT_OPTS
env variable: if you want to replicate exactly what is shown in the demo, here are my settings.
Feedback
If you find this application useful consider awarding it a β, it is a great way to give feedback! Otherwise, any additional suggestions or merge request is warmly welcome!
See also the complete family of extensions