qg (Quick Git) is a git(1) frontend written in POSIX shell and awk. It provides a quick-to-type interface to git(1), allows unknown commands to pass through to git(1) directly, and aims for POSIX compliance for portability.
Commands are single letters, concatenated without spaces. Commands affecting the remote use uppercase, local commands use lowercase. Arguments that aren't part of qg's command string are separated by spaces.
| s | status (numbered file listing) |
| a | add (by row numbers, e.g. a1-3) |
| b name | branch |
| c | commit |
| d | diff |
| g query | grep |
| l | log |
| p | pull |
| r | restore (by row numbers) |
| C name | checkout |
| M name | merge |
| P | push |
| R | rm |
| S | stash |
| Sb n | stash branch |
| Sc n | stash clear |
| Sd n | stash drop |
| Sl n | stash list |
| Sp n | stash pop |
| Ss n | stash save/show |
| V hash | revert |
| !cmd! | pass through to git(1) (use _ for spaces) |
Status with numbered file listing:
$ qg s On branch master Your branch is up to date with 'origin/master'. Changes to be committed: 1. modified: LICENSE Changes not staged for commit: 2. modified: README.md 3. modified: qg Untracked files: 4. newfile.txt
Add files 1 through 3, commit, and push:
$ qg a1-3cP
Pop stash 0:
$ qg Sp 0
Make a branch off master, switch to it, and push:
$ qg CpbCP master new_branch
Fetch all remotes, then checkout a branch:
$ qg !fetch_--all!C my_new_branch
| POSIX sh | Required |
| POSIX awk | Required |
| git(1) | Required |
Since the demise of NotABug quick-git is curently unavailable for download. Contact ktnb at NetBSD dot org if interested.
BSD 3-Clause.
| git | Distributed version control system |
| gitui | Terminal UI for git |
| tig | Text-mode interface for git |