gex icon indicating copy to clipboard operation
gex copied to clipboard

Git Explorer: cross-platform git workflow improvement tool inspired by Magit

Gex

crates.io download license stargazers

Gex

Git workflow improvement CLI tool inspired by Magit. This project is still under initial development, but I am actively dogfooding it and features should be added relatively quickly.

Aims

Primarily, this is a personal project since I recently switched to Neovim from Emacs and miss the simplicity and efficiency of using Magit. However, I do have some general aims, which are subject to change:

  • [x] Simple - uncluttered UI.
  • [x] Intuitive - it should be easy to learn to use gex.
  • [x] Cross platform - primary focus on Linux, but should work well on Windows and MacOS.
  • [ ] Configurable - certain preferences in gex should be configurable to suit your own workflow.
  • [ ] Comprehensive* - you should be able to use gex to do everything you can do in git.

* gex supports executing arbitrary git commands with : for when something is not yet available

Installation

Gex is hosted on crates.io. You can either install from source, or you can use cargo:

NOTE: You will need Rust on your system for this installation method.

$ cargo install gex

Usage

To enter gex, simply type gex in console.

$ gex

Navigation

Key Action
j / Down Move down
k / Up Move up
Tab Expand item

Git actions

Key Action
s stage item
S stage all items
u unstage item
U unstage all items
F pull from remote
: execute git command

Gex actions

Key Action
c commit menu
b enter branch mode
r refresh
q quit gex

Branch mode

Key Action
b checkout new branch
Space / Enter checkout branch
Esc exit branch mode

License

This project is dual-licensed under either:

at your option.

Contributing

If you want to contribute to gex, thank you so much! If you find a bug or want a new feature, please open an issue or submit a PR! I am happy to review and merge PRs.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.