diff --git a/config/.gitconfig b/config/.gitconfig deleted file mode 100644 index c43bb9d..0000000 --- a/config/.gitconfig +++ /dev/null @@ -1,4 +0,0 @@ -[interactive] - diffFilter = diff-so-fancy --patch -[pull] - rebase = false diff --git a/config/general/.gitconfig b/config/general/.gitconfig index da7558d..bedf0e4 100644 --- a/config/general/.gitconfig +++ b/config/general/.gitconfig @@ -1,284 +1,332 @@ +# ----------------------------------------------------------------------------- # Global Git Configuration +# ----------------------------------------------------------------------------- [user] - name = Alicia Sykes - email = alicia@omg.lol - username = lissy93 + name = Alicia Sykes + email = alicia@omg.lol + username = lissy93 + [init] - defaultBranch = master + defaultBranch = main + [pull] - rebase = false + # If you want `git pull` to always rebase, set this to true + rebase = false + [core] - editor = nvim - whitespace = fix,-indent-with-non-tab,trailing-space,cr-at-eol - pager = delta - excludesfile = /Users/alicia/.config/.gitignore_global - autocrlf = false - symlinks = true + editor = nvim + whitespace = fix,-indent-with-non-tab,trailing-space,cr-at-eol + excludesfile = /Users/alicia/.config/.gitignore_global + autocrlf = false + symlinks = true + [web] - browser = firefox -[instaweb] - httpd = apache2 -f + browser = firefox + +# [instaweb] +# httpd = apache2 -f +# Uncomment and configure if you actually use `git instaweb` + [rerere] - enabled = 1 - autoupdate = 1 + enabled = 1 + autoupdate = 1 + [color] - ui = auto + ui = auto + [color "branch"] - current = yellow bold - local = purple bold - remote = cyan bold + current = yellow bold + local = purple bold + remote = cyan bold + [color "diff"] - meta = yellow bold - frag = magenta bold - old = red bold - new = green bold - whitespace = red reverse + meta = yellow bold + frag = magenta bold + old = red bold + new = green bold + whitespace = red reverse + [color "status"] - added = green bold - changed = yellow bold - untracked = red bold + added = green bold + changed = yellow bold + untracked = red bold + [diff] - tool = vimdiff + tool = vimdiff + [difftool] - prompt = false + prompt = false + [delta] - features = line-numbers decorations - line-numbers = true + features = line-numbers decorations + line-numbers = true + [delta "decorations"] - minus-style = red bold normal - plus-style = green bold normal - minus-emph-style = white bold red - minus-non-emph-style = red bold normal - plus-emph-style = white bold green - plus-non-emph-style = green bold normal - file-style = yellow bold none - file-decoration-style = yellow box - hunk-header-style = magenta bold - hunk-header-decoration-style = magenta box - minus-empty-line-marker-style = normal normal - plus-empty-line-marker-style = normal normal - line-numbers-right-format = "{np:^4}│ " -# [github] - # user = lissy93 - # token = token + minus-style = red bold normal + plus-style = green bold normal + minus-emph-style = white bold red + minus-non-emph-style = red bold normal + plus-emph-style = white bold green + plus-non-emph-style = green bold normal + file-style = yellow bold none + file-decoration-style = yellow box + hunk-header-style = magenta bold + hunk-header-decoration-style = magenta box + minus-empty-line-marker-style = normal normal + plus-empty-line-marker-style = normal normal + line-numbers-right-format = "{np:^4}│ " + [gitflow "prefix"] - versiontag = v + versiontag = v + [sequence] - editor = interactive-rebase-tool + editor = interactive-rebase-tool + +# ----------------------------------------------------------------------------- +# Aliases +# ----------------------------------------------------------------------------- [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 - bdd = branch -D - br = branch -r - bc = rev-parse --abbrev-ref HEAD - bu = !git rev-parse --abbrev-ref --symbolic-full-name "@{u}" - bs = !git-branch-status - ############# - c = commit - ca = commit -a - cm = commit -m - cam = commit -am - cem = commit --allow-empty -m - cd = commit --amend - cad = commit -a --amend - ced = commit --allow-empty --amend - ############# - cl = clone - cld = clone --depth 1 - clg = !sh -c 'git clone git://github.com/$1 $(basename $1)' - - clgp = !sh -c 'git clone git@github.com:$1 $(basename $1)' - - clgu = !sh -c 'git clone git@github.com:$(git config --get user.username)/$1 $1' - - ############# - cp = cherry-pick - cpa = cherry-pick --abort - cpc = cherry-pick --continue - ############# - d = diff - dp = diff --patience - dc = diff --cached - dk = diff --check - dck = diff --cached --check - dt = difftool - dct = difftool --cached - ############# - 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 - om = checkout master - ob = checkout -b - opr = !sh -c 'git fo pull/$1/head:pr-$1 && git o pr-$1' - ############# - pr = prune -v - ############# - ps = push - psf = push -f - psu = push -u - pst = push --tags - ############# - pso = push origin - psao = push --all origin - psfo = push -f origin - psuo = push -u origin - ############# - psom = push origin master - psaom = push --all origin master - psfom = push -f origin master - psuom = push -u origin master - psoc = !git push origin $(git bc) - psaoc = !git push --all origin $(git bc) - psfoc = !git push -f origin $(git bc) - psuoc = !git push -u origin $(git bc) - psdc = !git push origin :$(git bc) - ############# - pl = pull - pb = pull --rebase - ############# - plo = pull origin - pbo = pull --rebase origin - plom = pull origin master - ploc = !git pull origin $(git bc) - pbom = pull --rebase origin master - pboc = !git pull --rebase origin $(git bc) - ############# - plu = pull upstream - plum = pull upstream master - pluc = !git pull upstream $(git bc) - pbum = pull --rebase upstream master - pbuc = !git pull --rebase upstream $(git bc) - ############# - 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 - rehom = reset --hard origin/master - ############# - r = remote - ra = remote add - rr = remote rm - rv = remote -v - rn = remote rename - rp = remote prune - rs = remote show - rao = remote add origin - rau = remote add upstream - rro = remote remove origin - rru = remote remove upstream - rso = remote show origin - rsu = remote show upstream - rpo = remote prune origin - rpu = remote prune upstream - ############# - rmf = rm -f - rmrf = rm -r -f - ############# - s = status - sb = status -s -b - ############# - sa = stash apply - sc = stash clear - sd = stash drop - sl = stash list - sp = stash pop - ss = stash save - ssk = stash save -k - sw = stash show - st = !git stash list | wc -l 2>/dev/null | grep -oEi '[0-9][0-9]*' - ############# - t = tag - td = tag -d - ############# - w = show - wp = show -p - wr = show -p --no-color - ############# - svnr = svn rebase - svnd = svn dcommit - svnl = svn log --oneline --show-commit - ############# - subadd = !sh -c 'git submodule add git://github.com/$1 $2/$(basename $1)' - - subrm = !sh -c 'git submodule deinit -f -- $1 && rm -rf .git/modules/$1 && git rm -f $1' - - subup = submodule update --init --recursive - subpull = !git submodule foreach git pull --tags -f origin master - ############# - assume = update-index --assume-unchanged - unassume = update-index --no-assume-unchanged - assumed = !git ls -v | grep ^h | cut -c 3- - unassumeall = !git assumed | xargs git unassume - assumeall = !git status -s | awk {'print $2'} | xargs git assume - ############# - bump = !sh -c 'git commit -am \"Version bump v$1\" && git psuoc && git release $1' - - release = !sh -c 'git tag v$1 && git pst' - - unrelease = !sh -c 'git tag -d v$1 && git pso :v$1' - - merged = !sh -c 'git o master && git plom && git bd $1 && git rpo' - - aliases = !git config -l | grep alias | cut -c 7- - snap = !git stash save 'snapshot: $(date)' && git stash apply 'stash@{0}' - bare = !sh -c 'git symbolic-ref HEAD refs/heads/$1 && git rm --cached -r . && git clean -xfd' - - whois = !sh -c 'git log -i -1 --author=\"$1\" --pretty=\"format:%an <%ae>\"' - - serve = daemon --reuseaddr --verbose --base-path=. --export-all ./.git - ############# - behind = !git rev-list --left-only --count $(git bu)...HEAD - ahead = !git rev-list --right-only --count $(git bu)...HEAD - ############# - ours = "!f() { git checkout --ours $@ && git add $@; }; f" - theirs = "!f() { git checkout --theirs $@ && git add $@; }; f" - subrepo = !sh -c 'git filter-branch --prune-empty --subdirectory-filter $1 master' - - human = name-rev --name-only --refs=refs/heads/* + # Adding files + a = add --all + ai = add -i + + # Apply patches + ap = apply + as = apply --stat + ac = apply --check + ama = am --abort + amr = am --resolved + ams = am --skip + + # Branch management + b = branch + ba = branch -a + bd = branch -d + bdd = branch -D + br = branch -r + bc = rev-parse --abbrev-ref HEAD + bu = "!git rev-parse --abbrev-ref --symbolic-full-name \"@{u}\"" + bs = "!git-branch-status" + + # Commits + c = commit + ca = commit -a + cm = commit -m + cam = commit -am + cem = commit --allow-empty -m + cd = commit --amend + cad = commit -a --amend + ced = commit --allow-empty --amend + + # Cloning + cl = clone + cld = clone --depth 1 + clg = "!sh -c 'git clone git://github.com/$1 $(basename $1)' -" + clgp = "!sh -c 'git clone git@github.com:$1 $(basename $1)' -" + clgu = "!sh -c 'git clone git@github.com:$(git config --get user.username)/$1 $1' -" + + # Cherry-pick + cp = cherry-pick + cpa = cherry-pick --abort + cpc = cherry-pick --continue + + # Diff + d = diff + dp = diff --patience + dc = diff --cached + dk = diff --check + dck = diff --cached --check + dt = difftool + dct = difftool --cached + + # Fetch + f = fetch + fo = fetch origin + fu = fetch upstream + + # Format patch + fp = format-patch + + # Fsck + fk = fsck + + # Grep + g = grep -p + + # Log + l = log --oneline + lg = log --oneline --graph --decorate + + # Ls-files + ls = ls-files + lsf = "!git ls-files | grep -i" + + # Merge + m = merge + ma = merge --abort + mc = merge --continue + ms = merge --skip + + # Checkout + o = checkout + om = checkout master + ob = checkout -b + opr = "!sh -c 'git fo pull/$1/head:pr-$1 && git o pr-$1' -" + + # Prune + pr = prune -v + + # Push + ps = push + psf = push -f + psu = push -u + pst = push --tags + pso = push origin + psao = push --all origin + psfo = push -f origin + psuo = push -u origin + psom = push origin master + psaom = push --all origin master + psfom = push -f origin master + psuom = push -u origin master + psoc = "!git push origin $(git bc)" + psaoc = "!git push --all origin $(git bc)" + psfoc = "!git push -f origin $(git bc)" + psuoc = "!git push -u origin $(git bc)" + psdc = "!git push origin :$(git bc)" + + # Pull + pl = pull + pb = pull --rebase + plo = pull origin + pbo = pull --rebase origin + plom = pull origin master + ploc = "!git pull origin $(git bc)" + pbom = pull --rebase origin master + pboc = "!git pull --rebase origin $(git bc)" + plu = pull upstream + plum = pull upstream master + pluc = "!git pull upstream $(git bc)" + pbum = pull --rebase upstream master + pbuc = "!git pull --rebase upstream $(git bc)" + + # Rebase + rb = rebase + rba = rebase --abort + rbc = rebase --continue + rbi = rebase --interactive + rbs = rebase --skip + + # Reset + 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 + rehom = reset --hard origin/master + + # Remote + r = remote + ra = remote add + rr = remote rm + rv = remote -v + rn = remote rename + rp = remote prune + rs = remote show + rao = remote add origin + rau = remote add upstream + rro = remote remove origin + rru = remote remove upstream + rso = remote show origin + rsu = remote show upstream + rpo = remote prune origin + rpu = remote prune upstream + + # Remove + rmf = rm -f + rmrf = rm -r -f + + # Status + s = status + sb = status -s -b + + # Stash + sa = stash apply + sc = stash clear + sd = stash drop + sl = stash list + sp = stash pop + ss = stash save + ssk = stash save -k + sw = stash show + st = "!git stash list | wc -l 2>/dev/null | grep -oEi '[0-9][0-9]*'" + + # Tag + t = tag + td = tag -d + + # Show + w = show + wp = show -p + wr = show -p --no-color + + # SVN (if used) + svnr = svn rebase + svnd = svn dcommit + svnl = svn log --oneline --show-commit + + # Submodules + subadd = "!sh -c 'git submodule add git://github.com/$1 $2/$(basename $1)' -" + subrm = "!sh -c 'git submodule deinit -f -- $1 && rm -rf .git/modules/$1 && git rm -f $1' -" + subup = submodule update --init --recursive + subpull = "!git submodule foreach git pull --tags -f origin master" + + # Assume untracked + assume = update-index --assume-unchanged + unassume = update-index --no-assume-unchanged + assumed = "!git ls -v | grep ^h | cut -c 3-" + unassumeall = "!git assumed | xargs git unassume" + assumeall = "!git status -s | awk {'print $2'} | xargs git assume" + + # Releases / versioning + bump = "!sh -c 'git commit -am \"Version bump v$1\" && git psuoc && git release $1' -" + release = "!sh -c 'git tag v$1 && git pst' -" + unrelease = "!sh -c 'git tag -d v$1 && git pso :v$1' -" + merged = "!sh -c 'git o master && git plom && git bd $1 && git rpo' -" + + # Utilities + aliases = "!git config -l | grep alias | cut -c 7-" + snap = "!git stash save 'snapshot: $(date)' && git stash apply 'stash@{0}'" + bare = "!sh -c 'git symbolic-ref HEAD refs/heads/$1 && git rm --cached -r . && git clean -xfd' -" + whois = "!sh -c 'git log -i -1 --author=\"$1\" --pretty=\"format:%an <%ae>\"' -" + serve = daemon --reuseaddr --verbose --base-path=. --export-all ./.git + behind = "!git rev-list --left-only --count $(git bu)...HEAD" + ahead = "!git rev-list --right-only --count $(git bu)...HEAD" + ours = "!f() { git checkout --ours $@ && git add $@; }; f" + theirs = "!f() { git checkout --theirs $@ && git add $@; }; f" + subrepo = "!sh -c 'git filter-branch --prune-empty --subdirectory-filter $1 master' -" + human = "name-rev --name-only --refs=refs/heads/*" + +# ----------------------------------------------------------------------------- +# Git LFS +# ----------------------------------------------------------------------------- [filter "lfs"] - clean = git-lfs clean -- %f - smudge = git-lfs smudge -- %f - process = git-lfs filter-process - required = true + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true + +# ----------------------------------------------------------------------------- +# If you have Sourcetree installed, you can leave this. Otherwise, comment out. +# ----------------------------------------------------------------------------- [difftool "sourcetree"] - cmd = opendiff \"$LOCAL\" \"$REMOTE\" - path = -[mergetool "sourcetree"] - cmd = /Users/alicia/Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\" - trustExitCode = true -[remote "origin"] - url = https://github.com/Homebrew/brew - fetch = +refs/heads/*:refs/remotes/origin/* -[homebrew] - analyticsmessage = true - caskanalyticsmessage = true + cmd = opendiff "$LOCAL" "$REMOTE" + path = + +# [mergetool "sourcetree"] +# cmd = /Users/alicia/Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED" +# trustExitCode = true