gh-f
is the ultimate, compact and snappyfzf
extension forgh
cli. It addresses most of your daily GitHub workflow, if not all of it:f
stands for filter, fzf or fomething felse.
gh extension install gennaro-tedesco/gh-f
- fzf
- gnu core utils
- bat(optional, if not detected it uses
less
as a pager, instead)
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 ofgit
standard instructions (so that you can remember them easily), only we append ans
to avoid conflicts, should you have those commands lying around in the shell as aliases or for scripting.
If you want to skip typinggh 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 sequenceshere:change yourself accordingly, if you like different ones. Moreover notice that the rendering of text in thefzf
preview window follows the options set in theFZF_DEFAULT_OPTS
env variable:if you want to replicate exactly what is shown in the demo,hereare my settings.
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