summaryrefslogtreecommitdiff
path: root/dotfiles/common/.zshrc.d/git.sh
blob: 6c2b6ada87cfcc44e6007ddbe72e441c760aae35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# git.sh
# Craig Jennings <c@cjennings.net>
# 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"
}