My currently used .gitconfig for reference, you might like a few things here.
[alias]
permission-reset = !git diff -p -R --no-ext-diff --no-color | grep -E \"^(diff|(old|new) mode)\" --color=never | git apply
all = "!f() { ls -R -d */.git | xargs -I{} bash -c \"echo {} && git -C {}/../ $1\"; }; f"
lg = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ai)%C(reset) %C(white)%s%C(reset) %C(dim white)-$
lg-simple = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ai)%C(reset) %C(white)%s%C(reset) %C(dim $
pullall = !git fetch --all && git pull
# When remote url starts with https://stash.xxx.de/scm, overwrite to ssh://...
[url "ssh://git@stash.xxxx.de:7999"]
insteadOf = https://stash.xxxx.de/scm
[url "ssh://git@stash.xxxx.de:7999"]
insteadOf = http://stash.xxxx.de/scm
[init]
defaultBranch = master
[core]
filemode = false
[push]
autoSetupRemote = true
[fetch]
prune = true
[pager]
branch = false