lazy-git-checkout 0.1.2

Change branches while stashing and unstashing changes
# lazy-git-checkout

Small program for quickly switching between branches, stashing and unstaging your last changes.

Changing branches with lgc is similar to doing:

```bash
git stash -m $CUR_BRANCH
git checkout $NEXT_BRANCH
git stash pop $LAST_NEXT_BRANCH_STASH_REF
```

but with _hopefully_ fewer keystrokes.

It also allows you to track your most used branches to avoid any `git branch | grep ...`


## Installing

**From crates.io:**

```bash
cargo install lazy-git-checkout
```

**From source:**

```bash
git clone https://github.com/manuelpepe/lazy-git-checkout.git
cd lazy-git-checkout
cargo install --path .
```

Make sure to have cargo's bin directory in your PATH.
Additionally alias for easier access:

```bash
alias lg=lazy-git-checkout
```

## Usage

```bash
$ lazy-git-commit -A .  # add project in current directory
$ lazy-git-commit       # launch ui
```

### Keybinds:

| Key           | Mode: Checkout                    | Mode: Search        | Mode: Add                        |
|---------------|-----------------------------------|---------------------|----------------------------------|
| ESC           |                                   | Set Mode: Checkout  | Set Mode: Checkout               |
| Enter         | Checkout to branch                | Checkout to branch  | Add branch to lgc known branches |
| Backspace     | Delete char                       | Delete char         | Delete char                      |
| ArrUp         | Move selection up                 | Move selection up   | Move selection up                |
| ArrDown       | Move selection down               | Move selection down | Move selection down              |
| Shift+ArrUp   | Swap selection up                 |                     |                                  |
| Shift+ArrDown | Swap selection down               |                     |                                  |
| q             | Exit app                          |                     |                                  |
| a             | Set Mode: Add                     |                     |                                  |
| ?             | Set Mode: Search                  |                     |                                  |
| r             | Remove branch from known branches |                     |                                  |
| k             | Move selection up                 |                     |                                  |
| j             | Move selection down               |                     |                                  |
| K             | Swap selection up                 |                     |                                  |
| J             | Swap selection down               |                     |                                  |