Wise settings for Git

A practical Git configuration for Windows with useful aliases, colored output, line-ending settings, Notepad++ as editor, and KDiff3 or P4Merge for diff and merge operations.

These settings reflecting my Git-environment. It a result of reading and trying several ideas of input from others.

Must-Haves

Aliases

[alias]
    ci = commit
    st = status
    co = checkout
    oneline = log --pretty=oneline
    br = branch
    la = log --pretty=\"format:%ad %h (%an): %s\" --date=short
    df = diff
    dc = diff --cached
    lg = log -p
    lol = log --graph --decorate --pretty=oneline --abbrev-commit
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
    ls = ls-files
    ign = ls-files -o -i --exclude-standard

Colors

[color]
    ui = auto
[color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
[color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
    whitespace = red reverse
[color "status"]
    added = green
    changed = red
    untracked = cyan

Core

[core]
    autocrlf = true
    excludesfile = c:/Users/<user>/.gitignore
    editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession –noPlugin

Nice to have

Merge and Diff

[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[mergetool "p4merge"]
    path = c:/Program Files (x86)/Perforce Merge/p4merge.exe
    cmd = p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
    keepTemporaries = false
    trustExitCode = false
    keepBackup = false
[diff]
    guitool = kdiff3
[difftool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[difftool "p4merge"]
    path = C:/Users/<user>/My Applications/Perforce Merge/p4merge.exe
    cmd = \"p4merge.exe $LOCAL $REMOTE\"