WARNING
Development of gina.vim is stopped. Users should be patient with existing bugs or check gin.vim that is under active development. Any further improvements of features will be applied to gin.vim instead.
gina.vim (gina) is a plugin to asynchronously control git repositories.
I've talked about what the gina.vim is in VimConf2017 (Slide). Check it out if you would like to feel what the gina.vim is.
The following is a schematic image of general working-flow with gina.
┌─────┬──────────┐
│ │ │
#DIRTY# │ ▼
▲ │ :Gina status │ << : stage
│ │ │ │ >> : unstage
│ │ │ │ -- : toggle
:write │ #STAGED# │ == : discard
▲ │ │ │ pp : patch
│ ├──────────┤ │ dd : diff
│ │ ▼
#CLEAN# │ :Gina commit │ ! : switch --amend
│ │ │ │ :w : save cache
│ ▼ │ │ :q : commit changes (confirm)
└────────────────┘ │ :wq : commit changes (immediate)
So basically user would
:Gina status
:Gina commit
See :h gina-usage
for advance usage. Gina provides a lot more features.
git
process so incredibly fast:Gina push
(git push
):Gina log
(git log
) on Linux repository won't freeze Neovim:Gina {command}
will execute a gina command or a git raw command asynchronously:Gina! {command}
will execute a git raw command asynchronously:Gina!! {command}
will execute a git raw command in a shell (mainly for :Gina!! add -p
or :Gina!! rebase -i
)?
to see the helpa
to select an action to perform (complete with <Tab>
).
to repeat previous actionee
or whatever which conflicts with Vim's native mappings (like vim-gita does...)Any contribution including documentations are welcome.
Contributers should install thinca/vim-themis to run tests before sending a PR if they applied some modification to the code. PRs which does not pass tests won't be accepted.
The code in gina.vim follows MIT license texted in LICENSE. Contributors need to agree that any modifications sent in this repository follow the license.