Mike Gerwitz

Free Software Hacker+Activist

aboutsummaryrefslogtreecommitdiffstats

git-shortmaps provides very concise (mostly one- and two-character), user-configurable commands for Git with support for Bash tab completion.

shortmaps / Bash Completion

The bash_completion file contains Bash completion for custom commands and "shortmappings", which provide single-character aliases to common Git commands.

Setup

Source the bash_completion file (e.g. place in .bashrc or in /etc/bash_completion.d/ on Debian systems), with the path to the provided shortmaps file as the only argument:

$ . bash_completion ./shortmaps

You may also add your own mappings to ~/.git-shortmaps, which is sourced automatically and will take precedence over any other mappings.

Usage

By default, the following mappings are available, each with tab completion:

  • a - git add
  • A - git add -A
  • AS - git add -A && git push
  • b - git branch
  • bd - git branch --delete
  • bd- - delete branch @{-1}
  • bv - git branch -v
  • B - git bisect
  • Bs - git bisect start
  • Bg - git bisect good
  • Bb - git bisect bad
  • Br - git bisect reset
  • c - git commit
  • ca - git commit --amend
  • co - git checkout
  • C - git commit -am
  • CS - git commit -S -am
  • d - git diff
  • ds - git diff --stat
  • f - git fetch
  • L - git log --show-signature
  • Ld - git log --show-signature --decorate
  • Lf - git log --show-signature --first-parent
  • Lg - git log --show-signature --graph
  • Lgd - git log --show-signature --graph --decorate
  • Lm - git log --show-signature --merges
  • Ln - git log --show-signature --no-merges
  • m - git merge
  • ma - git merge --abort
  • mm - git merge --no-ff
  • M - git submodule
  • Mi - git submodule update --init --recursive
  • Mu - git submodule update
  • MP - git submodule update --remote
  • p - git push
  • pd- - delete remote branch @{-1} (default origin)
  • pu - git push --set-upstream
  • P - git pull
  • Pr - git pull --rebase=preserve
  • Prp - git pull --rebase=preserve && git push
  • r - git reset
  • r@ - git reset @
  • r@:- git reset @ :/
  • r@* - git reset @ *
  • rh - git reset HEAD :/
  • R - git rebase
  • Ri - git rebase --interactive
  • Ra - git rebase --abort
  • Rc - git rebase --continue
  • s - git status --short
  • S - git stash
  • Sa - git stash apply
  • Sl - git stash list
  • Sp - git stash pop
  • Ss - git stash show
  • t - execute tig
  • T - git tag
  • - - git checkout -
  • -- - cd to root dir of repository
  • ? - display all shortmaps

The shortmaps may only be used within a Git repository; otherwise, they will invoke the actual command on the system.

If a shortmap conflicts with an existing command on your system, then you may either unalias the map, or use command X to invoke the system command X.

Configuration

The file format is as follows:

  • key completion :cmd
  • key completion |cmd
  • key completion cmd

If cmd contains a colon (:) prefix, the command will be prefixed with git. If prefixed with a pipe (|), the command will be sent to eval (needed for certain features like subshells). Commands without either prefix will be executed normally.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.