#!/usr/bin/env sh

# git alias
if exist git; then
  alias g='git'

  alias ga='git add'
  alias gaa='git add --all'
  alias gai='git add -i'
  alias gb='git branch'
  alias gbd='git branch -d'

  alias gc='git commit -v'
  alias gc!='git commit -v --amend'
  alias gcn!='git commit -v --no-edit --amend'

  alias gcm='git checkout master'
  alias gcd='git checkout develop'
  alias gcb='git checkout -b'
  alias gco='git checkout'

  alias gd='git diff'
  alias gds='git diff --staged'

  alias gi='git ignore'

  alias glog='git log --stat'
  alias glg='git log --oneline --decorate --graph'
  alias glga='git log --oneline --decorate --graph --remotes --all'
  alias glgp='git log --stat -p'

  alias gf='git fetch'
  alias gl='git pull'

  alias gpn='git push --dry-run'
  alias gp='git push'
  alias gpf!='git push --force'
  alias gpm='git pushmerge'

  alias grv='git remote -v'

  alias grs='git restore --staged'
  alias grs!='git restore'

  alias grbi='git rebase -i'
  alias grbc='git rebase --continue'

  alias gst='git status'

  autoload -Uz is-at-least
  if is-at-least 2.13 "$(git --version 2>/dev/null | awk '{print $3}')"; then
    alias gsta='git stash push'
  else
    alias gsta='git stash save'
  fi
  alias gstp='git stash pop'
  alias gstl='git stash list'
fi