# # ~/.gitconfig # User's global Git configuration file # # Credit: # * https://gist.github.com/pksunkara/988716 # # References: # [1] A Git Horror Story: Repository Integrity with Signed Commits # https://mikegerwitz.com/papers/git-horror-story.html # [2] What are the advantages and disadvantages of cryptographically # signing commits and tags in Git? # https://softwareengineering.stackexchange.com/a/212216 # # Aaron LI # [core] # Use 'less' as the pager and display tabs of width 8 pager = less -x1,9 [user] name = Aaron LI email = aly@aaronly.me signingKey = aly@aaronly.me [push] default = simple [commit] # Sign every commit #gpgSign = true # Use a message template template = ~/.gitmessage [tag] # Sign every tag gpgSign = true [color] ui = auto [diff] # Show space and tabs # Credit: https://stackoverflow.com/a/30803980 wsErrorHighlight = all [alias] a = add --all ai = add -i ############# ap = apply as = apply --stat ac = apply --check ############# ama = am --abort amr = am --resolved ams = am --skip ############# b = branch ba = branch -a bd = branch -d br = branch -r ############# c = commit ca = commit -a cm = commit -m cem = commit --allow-empty -m cam = commit -am cd = commit --amend cad = commit -a --amend ced = commit --allow-empty --amend ############# d = diff dc = diff --cached dl = difftool dlc = difftool --cached dk = diff --check dp = diff --patience dck = diff --cached --check ############# f = fetch fo = fetch origin fu = fetch upstream ############# fp = format-patch ############# fk = fsck ############# g = grep -p ############# l = log --oneline lg = log --oneline --graph --decorate ############# ls = ls-files lsf = "!git ls-files | grep -i" ############# m = merge ma = merge --abort mc = merge --continue ms = merge --skip ############# o = checkout ob = checkout -b ############# pr = prune -v ############# ps = push psf = push -f psu = push -u pso = push origin psao = push --all origin psfo = push -f origin psuo = push -u origin psom = push origin master psfom = push -f origin master psuom = push -u origin master ############# pl = pull plu = pull -u plo = pull origin plp = pull upstream plom = pull origin master plpm = pull upstream master ############# pb = pull --rebase pbo = pull --rebase origin pbp = pull --rebase upstream pbom = pull --rebase origin master pbpm = pull --rebase upstream master ############# rb = rebase rba = rebase --abort rbc = rebase --continue rbi = rebase --interactive rbs = rebase --skip ############# re = reset rh = reset HEAD reh = reset --hard rem = reset --mixed res = reset --soft rehh = reset --hard HEAD remh = reset --mixed HEAD resh = reset --soft HEAD ############# r = remote ra = remote add rr = remote rm rv = remote -v rm = remote rename rp = remote prune rs = remote show rao = remote add origin rau = remote add upstream rso = remote show origin rsu = remote show upstream rpo = remote prune origin rpu = remote prune upstream ############# s = status sb = status -s -b ############# sa = stash apply sc = stash clear sd = stash drop sl = stash list sp = stash pop ss = stash save sw = stash show ############# w = show wp = show -p wr = show -p --no-color ############# svnr = svn rebase svnd = svn dcommit svnl = svn log --oneline --show-commit ############# assume = update-index --assume-unchanged unassume = update-index --no-assume-unchanged assumed = "!git ls-files -v | grep ^h | cut -c 3-" unassumeall = !git assumed | xargs git update-index --no-assume-unchanged assumeall = "!git st -s | awk {'print $2'} | xargs git assume" ############# ours = "!f() { git checkout --ours $@ && git add $@; }; f" theirs = "!f() { git checkout --theirs $@ && git add $@; }; f" ############# whois = "!sh -c 'git log -i -1 --pretty=\"format:%an <%ae>\n\" --author=\"$1\"' -" whatis = show -s --pretty='tformat:%h (%s, %ad)' --date=short ############# barebranch = !sh -c 'git symbolic-ref HEAD refs/heads/$1 && git rm --cached -r . && git clean -xfd' - flat = clone --depth 1 subpull = !git submodule foreach git pull --tags origin master subrepo = !sh -c 'filter-branch --prune-empty --subdirectory-filter $1 master' - human = name-rev --name-only --refs=refs/heads/* serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git snapshot = !git stash save "snapshot: $(date)" && git stash apply "stash@{0}" [filter "lfs"] clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f process = git-lfs filter-process required = true