gitui/README.md

62 lines
1.8 KiB
Markdown
Raw Normal View History

2020-03-19 03:36:27 +03:00
# gitui
2020-03-23 16:59:46 +03:00
![CI](https://github.com/extrawurst/gitui/workflows/CI/badge.svg) [![MIT][s2]][l2]
[s2]: https://img.shields.io/badge/license-MIT-blue.svg
[l2]: LICENSE
2020-03-18 13:40:54 +03:00
blazing fast terminal-ui for git written in rust
2020-03-16 19:20:28 +03:00
2020-03-18 02:58:31 +03:00
![img](assets/main.jpg)
2020-03-23 16:30:13 +03:00
![img](assets/demo.gif)
2020-03-18 02:58:31 +03:00
2020-03-23 17:16:54 +03:00
## features
2020-03-24 11:58:43 +03:00
* fast key only control
2020-03-23 17:16:54 +03:00
* inspect changes
* (un)stage files
2020-03-24 11:55:51 +03:00
* revert/reset files
* commit changes
2020-03-23 17:16:54 +03:00
* async [input polling](assets/perf_compare.jpg) and
* async git API for fluid control
2020-03-18 02:58:31 +03:00
## motivation
2020-03-19 19:59:31 +03:00
I do most of my git usage in a terminal but I frequently found myself using git UIs for some use cases like: index/commit, diff, stash and log.
Over the last 2 years my go-to GUI tool for this was [fork](https://git-fork.com) because it was not bloated, snappy and free. Unfortunately the *free* part will [change soon](https://github.com/ForkIssues/TrackerWin/issues/571) and so I decided to build a fast & simple terminal tool myself to copy the fork features i am using the most.
2020-03-18 02:23:06 +03:00
2020-03-20 04:12:19 +03:00
## installation
2020-03-20 12:37:35 +03:00
For the time being this product is considered alpha and not production ready, therefore I do not distribute binary versions yet, however feel free to build `gitui` and let me know what you think!
### requirements
install `rust`/`cargo`: https://www.rust-lang.org/tools/install
### build from source
2020-03-20 04:12:19 +03:00
the simplest way to start playing around with `gitui` is to have `cargo` install it locally:
```
cargo install --path "."
```
after that you can go to your git repo and run it:
```
gitui
```
2020-03-23 17:16:54 +03:00
# todo for 0.1 (first release)
2020-03-16 19:20:28 +03:00
2020-03-24 12:04:48 +03:00
* [ ] fix: diff is not updated when changed
* [ ] fix: diff is updated when some hunks of the same file where diffed in unstaged before
2020-03-24 11:58:43 +03:00
* [ ] help command
2020-03-19 23:56:59 +03:00
* [ ] (un)staging selected hunks
2020-03-23 17:16:54 +03:00
* [ ] publish as homebrew-tap
* [ ] release on crates.io
2020-03-16 20:25:53 +03:00
2020-03-18 02:58:31 +03:00
# alternatives
2020-03-18 03:01:38 +03:00
* https://github.com/jesseduffield/lazygit