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:
- Simple - uncluttered UI.
- Intuitive - it should be easy to learn to use gex.
- 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:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
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.