# Gex
[](https://crates.io/crates/gex)
[](https://crates.io/crates/gex)
[](https://crates.io/crates/gex)
[](https://github.com/Piturnah/gex/stargazers)
Git workflow improvement CLI tool inspired by [Magit](https://github.com/magit/magit). **This project is still under initial development**, but I am actively [dogfooding](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) 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 compatible - 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.
## Installation
Gex is hosted on [crates.io](https://crates.io/crates/gex). You can either install from source, or you can use cargo:
```console
$ cargo install gex
```
## Usage
To enter gex, simply type `gex` in console.
```console
$ gex
```
### Navigation
| <kbd>j</kbd> / <kbd>Down</kbd> | Move down |
| <kbd>k</kbd> / <kbd>Up</kbd> | Move up |
| <kbd>Tab</kbd> | Expand item |
### Git actions
| <kbd>s</kbd> | stage item |
| <kbd>S</kbd> | stage all items |
| <kbd>u</kbd> | unstage item |
| <kbd>U</kbd> | unstage all items |
| <kbd>c</kbd> | commit\* |
\* uses default editor configured with git
### Gex actions
| <kbd>b</kbd> | enter branch mode |
| <kbd>r</kbd> | refresh |
| <kbd>q</kbd> | quit gex |
### Branch mode
| <kbd>b</kbd> | checkout new branch |
| <kbd>Space</kbd> / <kbd>Enter</kbd> | checkout branch |
| <kbd>Esc</kbd> | exit branch mode |
## 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](https://github.com/Piturnah/gex/issues) or submit a PR! I am happy to review and merge PRs.