[core] editor = nvim commentchar = ";" quotepath = false [advice] detachedhead = false [color] ui = true [commit] status = false [merge] tool = vimdiff ff = false [mergetool "vimdiff"] cmd = "__fn() { \ if [ -z \"$BASE\" ]; then \ nvim -d -c 'wincmd l' \"$LOCAL\" \"$MERGED\" \"$REMOTE\"; \ else \ nvim -d -c '4wincmd w | wincmd J | diffoff' \"$LOCAL\" \"$BASE\" \"$REMOTE\" \"$MERGED\"; \ fi; \ }; __fn" [rebase] abbreviatecommands = true autosquash = true autostash = true [diff] tool = vimdiff [difftool "vimdiff"] cmd = "nvim -R -d -c 'wincmd l' -c 'cd $GIT_PREFIX' \"$LOCAL\" \"$REMOTE\"" [init] defaultbranch = main [blame] coloring = repeatedLines [mergetool] keepbackup = false [credential] helper = osxkeychain [filter "lfs"] clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f process = git-lfs filter-process required = true [alias] a = add ap = add -p b = branch current-branch = rev-parse --abbrev-ref HEAD c = commit fetch1 = fetch --depth=1 fixup = commit --fixup amend = commit --amend --no-edit clone1 = clone --depth=1 sw = "!~/bin/gitalias/git-sw" swc = switch -c swm = "!__fn() { \ if git rev-parse --verify --quiet main > /dev/null 2>&1; then \ git switch main \"$@\"; \ elif git rev-parse --verify --quiet origin/main > /dev/null 2>&1; then \ git switch -d origin/main \"$@\"; \ elif git rev-parse --verify --quiet master > /dev/null 2>&1; then \ git switch master \"$@\"; \ elif git rev-parse --verify --quiet origin/master > /dev/null 2>&1; then \ git switch -d origin/master \"$@\"; \ else \ echo 'error: no branch found' >&2; \ fi; \ }; __fn" swd = "!__fn() { \ if git rev-parse --verify --quiet develop > /dev/null 2>&1; then \ git switch develop \"$@\"; \ elif git rev-parse --verify --quiet origin/develop > /dev/null 2>&1; then \ git switch -d origin/develop \"$@\"; \ else \ echo 'error: no branch found' >&2; \ fi; \ }; __fn" d = diff dc = diff --cached g = grep gf = grep --name-only s = status --short tmp = commit -a -m "TMP" tmps = stash save "TMP" ctmp = commit -m "TMP" sst = stash save "TMP" ss = stash save ssl = stash list ssa = stash apply ssd = stash drop ssp = stash pop last = log --pretty=fuller -1 l = "!__fn() { \ local last_merge_commit=\"$(git last-merge-commit)\"; \ if [ -n \"$last_merge_commit\" ]; then \ git log --oneline --boundary \"$last_merge_commit\".. \"$@\"; \ else \ git log --oneline -n 10 \"$@\"; \ fi; \ }; __fn" ll = log --oneline logf = log --pretty=fuller graph = log --oneline --graph r = rebase ri = rebase -i rid = rebase -i develop rc = "!GIT_EDITOR=true git rebase --continue" re = restore rep = restore -p m = "!__fn() { \ if [ \"$1\" = --abort ]; then \ git merge --abort; \ else \ git merge --no-edit \"$@\"; \ fi; \ }; __fn" mc = "!GIT_EDITOR=true git merge --continue" mm = mergetool pullu = pull upstream HEAD --ff pullo = pull origin HEAD --ff pusho = push origin HEAD cpick = cherry-pick cpickc = "!GIT_EDITOR=true git cherry-pick --continue" empty = commit --allow-empty last-merge-commit = "!git rev-list --abbrev-commit --merges HEAD | head -n 1" config-user = "!__fn() { \ if [ \"$1\" = nsfisis ]; then \ git config user.name nsfisis && git config user.email nsfisis@gmail.com; \ elif [ \"$1\" = \"\" ]; then \ echo \"usage: git config-user \" >&2; \ else \ echo \"unknown user: $1\" >&2; \ fi; \ }; __fn" setup-hooks = "!cp ~/dotfiles/githooks/* \"$(git rev-parse --show-toplevel)/.git/hooks\"" extract-issue = "!~/bin/gitalias/git-extract-issue"