# git.sh # Craig Jennings # Git aliases and convenience functions # ============================================================================= # Aliases # ============================================================================= alias gitlog="git log --graph --pretty=format:'%Cred%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cgreen(%cr)%Creset' --abbrev-commit --date=relative" alias gitstatus='git status -sb' alias gitcom='git commit -m' alias gitpp='git pull --prune' alias gittagbydate="git for-each-ref --sort=creatordate --format '%(refname) %(creatordate)' refs/tags" # ============================================================================= # Functions # ============================================================================= # Stash, pull, pop gitsp() { git stash && git pull && git stash pop } # Checkout branch with fzf gitck() { git checkout "$(git branch --all | fzf | tr -d '[:space:]')" } # Diff with fzf preview gitdiff() { preview="git diff $@ --color=always -- {-1}" git diff "$@" --name-only | fzf -m --ansi --preview "$preview" }