[user]
    name = nojhan
    email = nojhan@nojhan.net
[includeIf "gitdir:~/travail/**"]
    path = ~/travail/.gitconfig
[credential]
    helper = store
[commit]
    # Adds -v to commit by default
    verbose = true
[alias]
    st = status
    ci = commit -v
    cb = checkout -b # create branch
    ca = commit -v -a
    co = checkout
    lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"
    up = pull origin
    di = diff
    br = branch
    sta = stash
[color]
    ui = auto
[push]
    default = simple
    # push new tags along with commits being pushed
    followtags = true
[pull]
    rebase = true
[rebase]
    instructionFormat = (%an <%ae>) %s
    # You commit it with git commit --fixup OLD_COMMIT_ID,
    # which gives the new commit the commit message fixup! add parsing code
    # Now, when you run git rebase --autosquash main,
    # it will automatically combine all the fixup! commits with their targets
    autosquash = true
[diff "odf"]
    textconv=odt2txt
[diff]
    algorithm = histogram
    #  uses different colours to highlight lines in diffs that have been “moved”
    colorMoved = default
[merge]
    # Adds a middle section in 3-ways conflict sections.
    conflictstyle = zdiff3
    tool = meld
[init]
    defaultBranch = main
[help]
    # run the spelling suggestions automatically, you can set:
    # - help.autocorrect to 1 (run after 0.1 seconds),
    # - 10 (run after 1 second),
    # - immediate (run immediately),
    # - or prompt (run after prompting)
    autocorrect = prompt
[status]
    submoduleSummary = true
[branch]
    # makes git branch sort by most recently used branches instead of alphabetical
    sort = committerdate
[log]
    date = iso

[core]
    # delta will used as the default pager for git
    # and ov as the default pager for delta
    # the pager will be overloaded via the [pager] section for a few commands
    pager = delta --pager='ov -F'

[pager]
    # overload delta pager for some commands
    show = delta --pager='ov -F --header 3'

    # We are now overloading some commands via "delta features"
    # This allows us to use different pager per git command
    # It allows to maintain a simpler config file and avoid escaping quotes
    diff = delta --features ov-diff
    log  = delta --features ov-log

[delta]
    navigate = true
    side-by-side = true
    file-style = yellow

# we define the delta feature "ov-diff" we are using for git diff
[delta "ov-diff"]
    # the idea is to overload the pager used by delta when using git diff
    # we are using the same pattern used by delta when the default pager (less) is used
    # using ov section feature brings a better experience
    pager=ov -F --section-delimiter '^(commit|added:|removed:|renamed:|Δ)' --section-header --pattern '•'

# we define the delta feature "ov-log" we are using for git log
[delta "ov-log"]
    # the idea is to overload the pager used by delta when using git log
    # using ov section feature brings a better experience
    pager=ov -F --section-delimiter '^commit' --section-header-num 3
