[user] name = Anton Bobov email = abobov@gmail.com [http] sslVerify = false [color] ui = auto [diff] tool = vimdiff [difftool] prompt = false [grep] lineNumber = true [merge] conflictstyle = diff3 stat = true tool = vimdiff [core] pager = less -+$LESS -FRX excludesfile = ~/.gitignore [log] decorate = short [alias] aa = add --all --intent-to-add ar = !sh -c 'git archive --format=tar --prefix="$(basename "$PWD")-$1/" $1^{tree} | bzip2 >"$(basename "$PWD")-$1.tar.bz2"' - br = branch --sort=-committerdate c = commit --verbose co = checkout ci = commit diffstat = diff --stat -r fix = commit --amend -C HEAD history-all = "!gitk --all $( git fsck | awk '/dangling commit/ {print $3}'; git log -g --pretty='format:%H')" k = !sh -c 'gitk $1' - ka = !sh -c 'gitk --all' - kb = !sh -c 'gitk --branches' - lg = log --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative l = "!git lg -10" f = !sh -c 'git branch | grep -F "feature/$1" | xargs -r -n 1 git co' - st = status stashlist = stash list --date=short stash-all = stash save --include-untracked sha = rev-parse --short addnw = !sh -c 'git diff --unified=0 --ignore-all-space --no-color "$@" | git apply --cached --ignore-whitespace --unidiff-zero -' branch-name = "!git rev-parse --abbrev-ref HEAD" publish = "!git push -u origin $(git branch-name)" # https://datagrok.org/git/git-serve/ quickserve="daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/" # https://github.com/anishathalye/dotfiles/blob/master/gitconfig update-submodules = submodule update --init --recursive upgrade-submodules = submodule update --init --remote wc = whatchanged -p --abbrev-commit --pretty=medium undo = reset --soft HEAD~ whoami = config user.email fugitive = mergetool --tool fugitive clean-branches = !sh -c 'git branch --merged | grep -v '^*' | fzf -m | xargs -rp git branch -d' # Gitlab merge requests helpers mr = !sh -c 'git fetch $1 merge-requests/$2/head:mr-$1-$2 && git checkout mr-$1-$2' - mr-clean = "!git for-each-ref refs/heads/mr/* --format='%(refname)' | while read ref ; do branch=${ref#refs/heads/} ; git branch -D $branch ; done" [advice] statusHints = false detachedHead = false [branch] autosetupmerge = always autosetuprebase = local [rebase] instructionFormat = %s [%an] {%ar} [rerere] enabled = true [status] submoduleSummary = true [help] autocorrect = 10 [credential] helper = netrc [remote-hg] hg-git-compat = true [filter "tabs"] ;clean = unexpand --tabs=4 --first-only [gui] tabsize = 2 gcwarning = false [pull] rebase = true [push] followTags = true [guitool "meld"] cmd = meld $FILENAME noconsole = yes needsfile = yes [guitool "gvim"] cmd = gvim $FILENAME noconsole = yes needsfile = yes [include] path = ~/.gitconfig.local [filter "lfs"] required = true clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f process = git-lfs filter-process [mergetool "fugitive"] cmd = vim -c \"Gdiff\" \"$MERGED\" [fetch] prune = true # Allow pushing changes when working with a "read-only" remote from GitHub. [url "git@github.com:"] pushInsteadOf = https://github.com/ pushInsteadOf = git://github.com/