[user] name = Egor Tensin email = Egor.Tensin@gmail.com [core] editor = vim autocrlf = false [push] default = current [mergetool] keepBackup = false [pull] ff = only [alias] clean-all = clean -fdx clean-ignored = clean -fdX clean-unknown = clean -fd l = log --oneline # This is awesome: http://stackoverflow.com/a/1838938/514684 ll = log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s" lll = log --graph --full-history --all --color --pretty=tformat:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s%x20%x1b[33m(%an)%x1b[0m" # I think this is only usable on Cygwin, given all the file permission # madness there: xx = update-index --add --chmod=+x hide = update-index --skip-worktree unhide = update-index --no-skip-worktree hidden = !git ls-files -v | grep --basic-regexp \"^\\([[:lower:]]\\|S\\)\" # I heard git might use sh for aliases, so I tried to keep that in # mind. Didn't want to bother with an external script. fixup = "! \ __git_fixup() { \ if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1 ; then \ echo 'Not inside a Git repository.' >&2 ; \ return 1 ; \ fi ; \ \ if ! git rev-parse HEAD >/dev/null 2>&1 ; then \ echo \"Where's your HEAD?\" >&2 ; \ return 1 ; \ fi ; \ \ has_staged_changes= ; \ git diff --cached --ignore-submodules --quiet || has_staged_changes=1 ; \ \ has_unstaged_changes= ; \ git diff --ignore-submodules --quiet || has_unstaged_changes=1 ; \ \ if [ -z \"${has_staged_changes}\" ] && [ -z \"${has_unstaged_changes}\" ]; then \ echo 'No staged or unstaged changes, seemingly?' >&2 ; \ return 1 ; \ fi ; \ \ add=-a ; \ [ -n \"$has_staged_changes\" ] && add= ; \ \ numof_parents=`git rev-list --parents -n 1 HEAD | wc --words` ; \ if [ \"$numof_parents\" -eq 1 ] ; then \ dest_ref=--root ; \ elif [ \"$numof_parents\" -eq 2 ] ; then \ dest_ref=HEAD^^ ; \ else \ echo 'Sure you want to fixup a merge commit?' >&2 ; \ return 1 ; \ fi ; \ \ git commit $add --fixup=HEAD || return $? ; \ \ stash= ; \ [ -n \"$has_staged_changes\" ] && [ -n \"$has_unstaged_changes\" ] && stash=1 ; \ \ if [ -n \"$stash\" ]; then \ git stash push --quiet || return $? ; \ fi ; \ \ GIT_EDITOR=true git rebase -i --autosquash \"$dest_ref\" || return $? ; \ \ if [ -n \"$stash\" ]; then \ git stash pop --quiet || return $? ; \ fi ; \ } ; \ __git_fixup ; \ " [fetch] prune = true [log] follow = true [include] path = ~/.gitconfig_work [filter "lfs"] smudge = git-lfs smudge -- %f process = git-lfs filter-process required = true clean = git-lfs clean -- %f