79 lines
1.7 KiB
Markdown
79 lines
1.7 KiB
Markdown
# lazygitclj
|
|
|
|
A lazygit-inspired TUI for Git written in Clojure, targeting Babashka for fast startup.
|
|
|
|

|
|
|
|
## Features
|
|
|
|
- **Elm Architecture**: Clean Model-Update-View pattern for predictable state management
|
|
- **Fast startup**: Runs on Babashka for sub-second launch times
|
|
- **Familiar keybindings**: Vim-style navigation (j/k, h/l) matching lazygit
|
|
- **Full Git workflow**: Stage, commit, branch, merge, stash, and more
|
|
|
|
## Panels
|
|
|
|
### Files Panel (2)
|
|
View and manage staged/unstaged files with inline diffs.
|
|
|
|

|
|
|
|
### Branches Panel (3)
|
|
Switch branches, create new branches, merge, and fast-forward.
|
|
|
|

|
|
|
|
### Commits Panel (4)
|
|
Browse commit history, checkout commits, cherry-pick, and revert.
|
|
|
|

|
|
|
|
### Stash Panel (5)
|
|
Manage stashes - apply, pop, drop, or create branches from stash.
|
|
|
|

|
|
|
|
### Help Menu (?)
|
|
Press `?` to see all available keybindings.
|
|
|
|

|
|
|
|
## Installation
|
|
|
|
Requires [Babashka](https://github.com/babashka/babashka).
|
|
|
|
```bash
|
|
git clone https://github.com/yourusername/lazygitclj.git
|
|
cd lazygitclj
|
|
bb start
|
|
```
|
|
|
|
## Keybindings
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `q` | Quit |
|
|
| `?` | Help |
|
|
| `r` | Refresh |
|
|
| `h/l` | Previous/Next panel |
|
|
| `j/k` | Move down/up |
|
|
| `2-5` | Jump to panel |
|
|
| `space` | Stage/unstage (Files), Checkout (Commits/Branches), Apply (Stash) |
|
|
| `c` | Commit |
|
|
| `p/P` | Pull/Push |
|
|
| `z/Z` | Undo/Redo |
|
|
|
|
## Development
|
|
|
|
```bash
|
|
bb start # Run the TUI
|
|
bb test # Run unit tests
|
|
bb test:e2e # Run VHS tape tests
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|
|
|
|
|