Here’s a quick post on the awesomeness of tab completion, and how it can be applied to Git commands and branch names.
👉 See also: my post on fish shell, fish has awesome autocomplete built in.
There’s a little helper app called
git-completion.bash. Grab it to your home dir:
$ curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
Then add the following to your
if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi
If you now type
git<tab>, a hoard of commands will pop up:
$ git <tab> add clean gc p4 selfupdate alias clone get-tar-commit-id pull send-email am column grep pull-request shortlog annotate commit help push show apply compare imap-send rebase show-branch archive config init reflog stage bisect create instaweb release stash blame describe interpret-trailers relink status branch diff issue remote submodule bundle difftool log repack subtree checkout fetch merge replace svn cherry filter-branch mergetool request-pull tag cherry-pick fork mv reset verify-commit ci-status format-patch name-rev revert version citool fsck notes rm whatchanged
To view all your branches in a give repo, for example, start with
branch and hit tab:
$ git branch <tab> FETCH_HEAD new-security-page origin/add-language-to-support HEAD new-security-page-bu origin/master ORIG_HEAD new-stuff origin/new-js linted-js old-master origin/new-stuff master old-stuff new-js origin/HEAD
As you see the example repo has a lot a badly named feature branches.
Comments would go here, but the commenting system isn’t ready yet, sorry. Tweet me @hiljaa if you want to make a correction etc.