+[core]
+ whitespace = trailing-space,space-before-tab
+
+[apply]
+ whitespace = fix
+
+[color]
+ diff = never
+ grep = auto
+ range-diff = auto
+ ui = auto
+
+[am]
+ keepnonpatch = true
+
+[alias]
+ distclean = clean -f -d -X
+ wdiff = diff --color-words
+ wshow = show --color-words
+ hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
+ root = rev-parse --show-toplevel
+
+ show-commit = !git --no-pager show -s --date=short --pretty='format:%h ("%s", %ad)\n'
+
+ nuke = !sh -c 'git branch --delete $1 && git push origin --delete $1' -
+
+ trim = !git ls-files -z | xargs -r0 sed -i -e 's/[[:space:]]*$//g'
+
+ first-push = !git config branch.master.remote origin && \
+ git config branch.master.merge refs/heads/master && \
+ git push origin master:refs/heads/master
+
+ rebase-from-last-merge = !git rebase -i $(git log --merges -1 --format='%H')
+
+[sendemail]
+ chainreplyto = false
+ envelopesender = auto
+
+[push]
+ default = simple
+
+[diff]
+ compactionHeuristic = 1
+
+# The following settings define shortcuts for some popular remote
+# repositories.
+#
+# When using such shortcuts as remote URLs the default behavior will be:
+#
+# - fetch anonymously via https
+# - push via ssh.
+
+[url "https://git.drupal.org/"]
+ insteadOf = drupal:
+[url "git@git.drupal.org:"]
+ pushInsteadOf = drupal:
+
+[url "https://github.com/"]
+ insteadOf = github:
+[url "git@github.com:"]
+ pushInsteadOf = github:
+
+[url "https://gitlab.com/"]
+ insteadOf = gitlab:
+[url "git@gitlab.com:"]
+ pushInsteadOf = gitlab:
+
+[url "https://gitlab.gnome.org/"]
+ insteadOf = gnome:
+[url "git@gitlab.gnome.org:"]
+ pushInsteadOf = gnome:
+
+[url "https://gitlab.freedesktop.org/"]
+ insteadOf = freedesktop:
+[url "git@gitlab.freedesktop.org:"]
+ pushInsteadOf = freedesktop:
+
+[include]
+ path = .gitconfig.local