Customizable and lightweight git front end tool. Included shell completions and many interesting looking options.
Go to file
Laggard Kernel 28c4bf41e1 Feature: use gitignore templates from local repo directly
The gitignore templates used here is from dvcs/gitignore, which is
the same one used by gitignore.io.

Environment variable `FORGIT_GI_USE_LOCAL` is used as a switch to
enable this feature, or the original method is used by default.

`forgit::ignore::update` and `forgit::ignore::get` are rewritten
to download the repo, to get templates from the local repo.
local variable `preview` in `forgit:ignore` is also rewritten to
get the preview from there.


Former-commit-id: c1a8bd71dc
2019-01-17 14:56:01 +08:00
forgit.plugin.sh Feature: use gitignore templates from local repo directly 2019-01-17 14:56:01 +08:00
forgit.plugin.zsh Feature: use gitignore templates from local repo directly 2019-01-17 14:56:01 +08:00
LICENSE.txt Update License 2018-04-15 11:37:00 +08:00
README.md Update README 2019-01-11 17:32:25 +08:00

forgit

License: MIT

forgit is a utility tool for git taking advantage of fuzzy finder fzf.

Installation

Make sure you have fzf installed.

for zplug (Recommend)

zplug 'wfxr/forgit', defer:1

for zgen

zgen load wfxr/forgit

for antigen

antigen bundle wfxr/forgit

Manually

zsh

Clone this repo and source forgit.plugin.zsh in ~/.zshrc.

bash

Clone this repo and source forgit.plugin.sh in ~/.bashrc.

Commands

ga

Interactive git add selector

screenshot

glo

Interactive git log viewer

screenshot

gi

Interactive .gitignore generator

screenshot

gd

Interactive git diff viewer

gcf

Interactive git checkout <file> selector

gss

Interactive git stash viewer

gclean

Interactive git clean selector

Default keybinds

Keybind Action
<Enter> Confirm
<Tab> Toggle mark
<C-k/p> Selection up
<C-j/n> Selection down
<A-k/p> Preview up
<A-j/n> Preview down
<A-w> Toggle preview wrap
<?> Toggle preview window
<C-r> Toggle selection
<C-s> Toggle sort

Custom options

You can change the default aliases by defining these variables below. (To disable all aliases, Set the FORGIT_NO_ALIASES flag.)

# Define them before sourcing the plugin if you don't use any plugin manager.
forgit_log=glo
forgit_diff=gd
forgit_add=ga
forgit_ignore=gi
forgit_restore=gcf
forgit_clean=gclean
forgit_stash_show=gss

You can add custom 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%'
"

Tips

  • Hit q to quit from full screen preview any time.
  • Install diff-so-fancy to have better diff output.
  • Commands like glo, gd, gcf and gclean accept path arguments to restrain the items listed in fzf(eg, glo main.go test.go, gclean output/).
  • Call gi with arguments to get wanted .gitignore contents directly(eg, gi c++).

License

The MIT License (MIT)

Copyright (c) 2018 Wenxuan Zhang