https://github.com/wfxr/forgit Skip to content Sign up * Product + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} wfxr / forgit Public * Notifications * Fork 98 * Star 2.2k A utility tool powered by fzf for using git interactively. License MIT license 2.2k stars 98 forks Star Notifications * Code * Issues 3 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 2 branches 0 tags Code Latest commit @cjappl @wfxr cjappl and wfxr Adding support for git branch delete method (#200) ... 75e9d12 May 11, 2022 Adding support for git branch delete method (#200) * Adding support for git branch delete method in fish * Add new doc to README * Added options like gcb * refactor: remove `--all` flag from gbd * feat: sync forgit::branch::delete to bash and zsh Co-authored-by: Wenxuan Zhang 75e9d12 Git stats * 369 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github ci: remove outdated env Oct 26, 2021 bin add some comments for clarification Oct 18, 2021 conf.d Adding support for git branch delete method (#200) May 11, 2022 .gitignore ci: add github actions ci Aug 11, 2020 .pre-commit-config.yaml chore: add LICENSE content Mar 1, 2021 LICENSE chore: add LICENSE content Mar 1, 2021 README.md Adding support for git branch delete method (#200) May 11, 2022 forgit.plugin.sh Refactor & Share code between zsh & sh. Jan 17, 2019 forgit.plugin.zsh Adding support for git branch delete method (#200) May 11, 2022 View code [ ] forgit Installation Features [?] Keybinds [?] Options aliases shell git pagers fzf options other options Optional dependencies Tips License README.md forgit Utility tool for using git interactively. Powered by junegunn/fzf. [badge] [6874747073] [6874747073] [6874747073] pre-commit Contributors This tool is designed to help you use git more efficiently. It's lightweight and easy to use. Installation Make sure you have fzf installed. # for zplug zplug 'wfxr/forgit' # for zgen zgen load 'wfxr/forgit' # for antigen antigen bundle 'wfxr/forgit' # for fisher fisher install wfxr/forgit # for omf omf install https://github.com/wfxr/forgit # for zinit zinit load wfxr/forgit # manually # Clone the repository and source it in your shell's rc file. You can run the following command to try forgit without installing: # for bash / zsh source <(curl -sSL git.io/forgit) # for fish source (curl -sSL git.io/forgit-fish | psub) Features * Interactive git add selector (ga) screenshot * Interactive git log viewer (glo) screenshot The log graph can be disabled by option FORGIT_LOG_GRAPH_ENABLE (see discuss in issue #71). * Interactive .gitignore generator (gi) screenshot * Interactive git diff viewer (gd) * Interactive git reset HEAD selector (grh) * Interactive git checkout selector (gcf) * Interactive git checkout selector (gcb) * Interactive git branch -D selector (gbd) * Interactive git checkout selector (gct) * Interactive git checkout selector (gco) * Interactive git revert selector (grc) * Interactive git stash viewer (gss) * Interactive git clean selector (gclean) * Interactive git cherry-pick selector (gcp) * Interactive git rebase -i selector (grb) * Interactive git commit --fixup && git rebase -i --autosquash selector (gfu) [?] Keybinds Key Action Enter Confirm Tab Toggle mark and move up Shift - Tab Toggle mark and move down ? Toggle preview window Alt - W Toggle preview wrap Ctrl - S Toggle sort Ctrl - R Toggle selection Ctrl - Y Copy commit hash* Ctrl - K / P Selection move up Ctrl - J / N Selection move down Alt - K / P Preview move up Alt - J / N Preview move down * Available when the selection contains a commit hash. For linux users FORGIT_COPY_CMD should be set to make copy work. Example: FORGIT_COPY_CMD='xclip -selection clipboard'. [?] Options aliases shell You can change the default aliases by defining these variables below. (To disable all aliases, Set the FORGIT_NO_ALIASES flag.) forgit_log=glo forgit_diff=gd forgit_add=ga forgit_reset_head=grh forgit_ignore=gi forgit_checkout_file=gcf forgit_checkout_branch=gcb forgit_branch_delet=gbd forgit_checkout_tag=gct forgit_checkout_commit=gco forgit_revert_commit=grc forgit_clean=gclean forgit_stash_show=gss forgit_cherry_pick=gcp forgit_rebase=grb forgit_fixup=gfu git You can use git aliases by making git-forgit available in $PATH: # after `forgit` was loaded export PATH="$PATH:$FORGIT_INSTALL_DIR/bin" Some plugin managers can help do this. Then any forgit command will be a subcommand of git: $ git forgit log $ git forgit add $ git forgit diff Optionally you can add aliases in git: git config --global alias.cf 'forgit checkout_file' And use the alias in git: git cf pagers Forgit will use the default configured pager from git (core.pager, pager.show, pager.diff) but can be altered with the following environment variables: Use case Option Fallbacks to common pager FORGIT_PAGER git config core.pager or cat pager on git FORGIT_SHOW_PAGER git config pager.show or show $FORGIT_PAGER pager on git FORGIT_DIFF_PAGER git config pager.diff or diff $FORGIT_PAGER pager on FORGIT_IGNORE_PAGER bat -l gitignore --color always or gitignore cat git log format FORGIT_GLO_FORMAT %C(auto)%h%d %s %C(black)%C(bold) %cr%reset fzf options You can add default fzf options for forgit, including keybinds, layout, etc. (No need to repeat the options already defined in FZF_DEFAULT_OPTS) FORGIT_FZF_DEFAULT_OPTS=" --exact --border --cycle --reverse --height '80%' " Customizing fzf options for each command individually is also supported: Command Option ga FORGIT_ADD_FZF_OPTS glo FORGIT_LOG_FZF_OPTS gi FORGIT_IGNORE_FZF_OPTS gd FORGIT_DIFF_FZF_OPTS grh FORGIT_RESET_HEAD_FZF_OPTS gcf FORGIT_CHECKOUT_FILE_FZF_OPTS gcb FORGIT_CHECKOUT_BRANCH_FZF_OPTS gbd FORGIT_BRANCH_DELETE_FZF_OPTS gct FORGIT_CHECKOUT_TAG_FZF_OPTS gco FORGIT_CHECKOUT_COMMIT_FZF_OPTS grc FORGIT_REVERT_COMMIT_OPTS gss FORGIT_STASH_FZF_OPTS gclean FORGIT_CLEAN_FZF_OPTS grb FORGIT_REBASE_FZF_OPTS gfu FORGIT_FIXUP_FZF_OPTS Complete loading order of fzf options is: 1. FZF_DEFAULT_OPTS (fzf global) 2. FORGIT_FZF_DEFAULT_OPTS (forgit global) 3. FORGIT_CMD_FZF_OPTS (command specific) Examples: * ctrl-d to drop the selected stash but do not quit fzf (gss specific). FORGIT_STASH_FZF_OPTS=' --bind="ctrl-d:reload(git stash drop $(cut -d: -f1 <<<{}) 1>/dev/null && git stash list)" ' * ctrl-e to view the logs in a vim buffer (glo specific). FORGIT_LOG_FZF_OPTS=' --bind="ctrl-e:execute(echo {} |grep -Eo [a-f0-9]+ |head -1 |xargs git show |vim -)" ' other options Option Description Default FORGIT_LOG_FORMAT git log %C(auto)%h%d %s %C(black)%C(bold) format %cr%Creset Optional dependencies * delta / diff-so-fancy: For better human readable diffs. * bat: Syntax highlighting for gitignore. * emoji-cli: Emoji support for git log. Tips * Most of the commands accept optional arguments (eg, glo develop, glo f738479..188a849b -- main.go, gco master). * gd supports specifying revision(eg, gd HEAD~, gd v1.0 README.md). * Call gi with arguments to get the wanted .gitignore contents directly(eg, gi cmake c++). * You can use the commands as sub-commands of git, see #147 for details. License MIT (c) Wenxuan Zhang About A utility tool powered by fzf for using git interactively. Topics git bash zsh cli fish fzf zsh-plugin Resources Readme License MIT license Stars 2.2k stars Watchers 21 watching Forks 98 forks Releases No releases published Packages 0 No packages published Contributors 38 * @wfxr * @idoa01 * @doronbehar * @cjappl * @FollieHiyuki * @jilleJr * @laggardkernel * @wren * @sandr01d * @carlosedp * @carlfriedrich + 27 contributors Languages * Shell 100.0% * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.