An open API service indexing awesome lists of open source software.

https://github.com/leohenon/interactive-git-status

A minimal interactive git status for faster staging.
https://github.com/leohenon/interactive-git-status

cli git git-status

Last synced: about 1 month ago
JSON representation

A minimal interactive git status for faster staging.

Awesome Lists containing this project

README

          

interactive-git-status


Release
Go 1.23+
CI


A minimal interactive git status for faster staging.

## Install

Homebrew:

```sh
brew install leohenon/tap/igs
```

Go:

```sh
go install github.com/leohenon/interactive-git-status/cmd/igs@latest
```

## Usage

```sh
igs
```

![igs default view](assets/igs.gif)

```sh
igs --short
```

![igs short view](assets/igs-short.gif)

## Flags

| Flag | Description |
| --------------- | --------------------------------------------------------- |
| `-s`, `--short` | Use compact interactive status view |
| `--ignored` | Show ignored files |
| `--show-stash` | Show stash count. Also shown when `status.showStash=true` |
| `--watch` | Refresh status automatically |
| `--version` | Show version |
| `-h`, `--help` | Show usage |

## Keybindings

| Key | Action |
| -------------------- | ------------------------------------ |
| `enter` | Toggle selected file staged/unstaged |
| `s` | Stage selected file |
| `u` | Unstage selected file |
| `a` | Toggle all for current side |
| `S` | Stage all |
| `U` | Unstage all |
| `c` | Commit staged changes |
| `r` | Refresh |
| `j`, `↓` | Move down |
| `k`, `↑` | Move up |
| `ctrl-d` | Move down half a screen |
| `ctrl-u` | Move up half a screen |
| `g` | Jump to top |
| `G` | Jump to bottom |
| `tab` | Jump to next section |
| `q`, `esc`, `ctrl-c` | Exit |

## Why

Keep the familiar `git status` view, but stage, unstage, and commit interactively.

## What it does

- Supports staged, unstaged, untracked, ignored, and unmerged files
- Shows branch, upstream, stash, sparse checkout, detached HEAD, and in-progress operation state
- Handles renamed files, copied files, submodules, and paths with spaces

> Supports macOS and Linux.

## Example aliases

```sh
alias gs='igs'
alias gss='igs --short'
```

## License

MIT