Useful scripts to extend git functionality.
Copy the main scripts into a directory named in $PATH.
cp -av git-* ~/bin/
git-release
# Like that fromgit-extras
only more automatic
git release # Creates a new semver release with an annotated tag
git release point # Create a point release e.g. v0.1.0 -> v0.1.1
git-changelog
git changelog # List commit messages since last "tag"
git changelog HEAD~4 HEAD # List commit messages between two revisions
git-bar
source ~/bin/git-bar # NOTE: This is not an executable script but a
# collection of bash aliases/functions.
gh # list the help screen
gd file # git diff file - file is now "remembered"
ga # git add file - NOTE file is not specified as it was remembered
gca My elaborate commit message # Commit. NOTE no quotes needed.
gd . # git diff .
gca My other well-formed commit message
gdc # git diff --cached
gbr # What branch am I on?
gb # Use fzf to select branch
gco audit # Checkout branch matching 'audit' anywhere in branch name
gco master # Checkout master
gco # Checkout last branch _a la_ cd
gba # git branch --all --verbose
gp # git pull
gP # git push
gPA # git push --all --tags # Useful after a release
gsync # git fetch --all && git pull .. useful before merge/rebase
# from other branches
gwip # Create a WIP commit like a stash but pushable to remote
# Useful before you go on vacation
gundo # Undo the WIP commit (git reset --mixed HEAD~1)
gwipe # Commit and then do a git reset --hard
# Why? So you can always recover even this work via the reflog
... And many other goodies. Most commands support tab-completion too.