-# basic {{{
- st = status -s
- cl = clone
- ci = commit
- co = checkout
- br = branch
- r = reset
- cp = cherry-pick
- gr = grep -Ii
-# }}}
-# tweak defaults {{{
- diff = diff --word-diff
- branch = branch -ra
- grep = grep -Ii
- bra = branch -ra
- ai = add --interactive
- # grep on filename
- f = "!git ls-files | grep -i"
-# }}}
-# commit {{{
- cm = commit -m
- cma = commit -a -m
- ca = commit --amend
- amend = commit --amend
- caa = commit -a --amend -C HEAD
-# }}}
-# log commands {{{
- ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
- ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
- lc = "!f() { git ll "$1"^.."$1"; }; f"
- lnc = log --pretty=format:"%h\\ %s\\ [%cn]"
- fl = log -u
- filelog = log -u
-# }}}
-# diff {{{
- d = diff --word-diff
- dc = diff --cached
- # diff last commit
- dlc = diff --cached HEAD^
- dr = "!f() { git diff -w "$1"^.."$1"; }; f"
- diffr = "!f() { git diff "$1"^.."$1"; }; f"
-# }}}
-# reset commands {{{
- r1 = reset HEAD^
- r2 = reset HEAD^^
- rh = reset --hard
- rh1 = reset HEAD^ --hard
- rh2 = reset HEAD^^ --hard
-# }}}
-# git svn {{{
- svnr = svn rebase
- svnd = svn dcommit
- svnl = svn log --oneline --show-commit
-# }}}
-# stash {{{
- sl = stash list
- sa = stash apply
- ss = stash save
-# }}}
-# assume aliases {{{
- assume = update-index --assume-unchanged
- unassume = update-index --no-assume-unchanged
- # show assumed files
- assumed = "!git ls-files -v | grep ^h | cut -c 3-"
- # unassume all the assumed files
- unassumeall = "!git assumed | xargs git update-index --no-assume-unchanged"
- assumeall = "!git status -s | awk {'print $2'} | xargs git assume"
-# }}}
-# subtree {{{
- # add
- sba = "!f() { git subtree add --prefix $2 $1 master --squash; }; f"
- # update/pull
- sbu = "!f() { git subtree pull --prefix $2 $1 master --squash; }; f"
-# }}}
-# various useful {{{
- # last tag created
- lasttag = describe --tags --abbrev=0
- lt = describe --tags --abbrev=0
-
- # conflict/merges
- ours = "!f() { git co --ours $@ && git add $@; }; f"
- theirs = "!f() { git co --theirs $@ && git add $@; }; f"
-
- #list remotes
- rem="!git config -l | grep remote.*url | tail -n +2"
-
- #apply patch from other local repo
- lap = "!f() { git --git-dir=$1 format-patch -k -1 --stdout $2 | git am -3 -k; }; f"
-
- #open markdown files edited in last commit
- last = "!gvim $(git show HEAD --format="" --name-only | grep -e .*md$ | xargs)"
- #open just created markdown in working directory
- newmd = "!gvim $(git status -s | awk {'print $2'})"
-
- # initial empty commit
- empty = "!git commit -am\"[empty] Initial commit\" --allow-empty"
-
- # list all aliases
- la = "!git config -l | grep alias | cut -c 7-"
-# }}}
-# convoluted aliases {{{
- # grep from root folder
- gra = "!f() { A=$(pwd) && TOPLEVEL=$(git rev-parse --show-toplevel) && cd $TOPLEVEL && git grep --full-name -In $1 | xargs -I{} echo $TOPLEVEL/{} && cd $A; }; f"
- #rename branch tree to done-
- done = "!f() { git branch | grep "$1" | cut -c 3- | grep -v done | xargs -I{} git branch -m {} done-{}; }; f"
- #add bitbucket remote
- ra = "!f() { git remote add $1 https://bitbucket.org/$2.git; }; f"
-# }}}
-# worktree list {{{
- wl = worktree list
- # undo from here http://megakemp.com/2016/08/25/git-undo/
- undo = "!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f"
-# }}}
+ a = add
+ aa = add --all
+ ai = add --interactive
+ ap = add --patch
+ au = add --update
+
+ b = branch
+ br = branch
+ bra = branch --all
+
+ co = checkout
+ cob = checkout -b
+
+ cp = cherry-pick
+ cpa = cherry-pick --abort
+ cpc = cherry-pick --continue
+
+ c = commit
+ ca = commit --all
+ cm = commit --message
+ cma = commit --all --message
+ cmv = commit --verbose
+ cmav = commit --all --verbose
+ fix = commit --all --fixup
+
+ diff = diff --word-diff
+ d = diff --word-diff
+ dc = diff --cached
+ dlc = diff --cached HEAD^
+ ds = diff --staged
+ dr = "!f() { git diff -w "$1"^.."$1"; }; f"
+ diffr = "!f() { git diff "$1"^.."$1"; }; f"
+
+ # grep on filename
+ f = "!git ls-files | grep -i"
+
+ g = grep -Ii
+ gr = grep -Ii
+ grep = grep -Ii
+
+ ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate
+ ll = log --graph --topo-order --date=short --abbrev-commit --decorate --all --boundary --pretty=format:'%Cgreen%ad %Cred%h%Creset -%C(yellow)%d%Creset %s %Cblue[%cn]%Creset %Cblue%G?%Creset'
+ lll = log --graph --topo-order --date=iso8601-strict --no-abbrev-commit --abbrev=40 --decorate --all --boundary --pretty=format:'%Cgreen%ad %Cred%h%Creset -%C(yellow)%d%Creset %s %Cblue[%cn <%ce>]%Creset %Cblue%G?%Creset'
+ lc = "!f() { git ll "$1"^.."$1"; }; f"
+ lnc = log --pretty=format:"%h\\ %s\\ [%cn]"
+ lo = log --oneline
+ lp = log --patch
+ fl = log -u
+ filelog = log -u
+ lg = log --graph --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset" --abbrev-commit
+ lga = log --graph --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset" --abbrev-commit --all
+ # tag logs
+ taglog = "log --tags --simplify-by-decoration --pretty='format:%ci %d'"
+
+ pl = pull
+ pla = pull --all
+
+ ps = push
+ please = push --force-with-lease
+
+ rem = remote
+ remp = remote prune
+ remu = remote update
+
+ rb = rebase
+ rba = rebase --abort
+ rbc = rebase --continue
+ rbi = rebase --interactive
+
+ r = reset
+ r1 = reset HEAD^
+ r2 = reset HEAD^^
+ rh = reset --hard
+ rh1 = reset --hard HEAD^
+ rh2 = reset --hard HEAD^^
+
+ rs = restore
+
+ sl = stash list
+ sa = stash apply
+ ss = stash save
+
+ st = status --short
+
+ sw = switch
+
+ # add subtree
+ sba = "!f() { git subtree add --prefix $2 $1 master --squash; }; f"
+ # update/pull subtree
+ sbu = "!f() { git subtree pull --prefix $2 $1 master --squash; }; f"
+
+ # initial empty commit
+ empty = "!git commit -am\"[empty] Initial commit\" --allow-empty"
+
+ wl = worktree list
+
+ serve = daemon --reuseaddr --verbose --base-path=. --export-all ./.git