aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home/.config/git/config
blob: 9e538a68c59c5d08331def6e953257aceb5df2b4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
[user]
    email = sommerfeld@sommerfeld.dev
    name = sommerfeld
    signingkey = 3298945F717C85F8
[push]
    autoSetupRemote = true
    followTags = true
    gpgSign = if-asked
[core]
    whitespace = fix,trailing-space,cr-at-eol
    autocrlf = input
    pager = delta
[branch]
    sort=-committerdate
[diff]
    tool = nvimdiff
    # algorithm = histogram
    colorMoved = default
    mnemonicPrefix = true
    relative = true
    renameLimit = 10000
[difftool]
    prompt = false
    trustExitCode = true
[pager]
    difftool = true
[difftool "nvimdiff"]
    cmd = $EDITOR -d $LOCAL $REMOTE
[difftool "difftastic"]
    cmd = difft "$MERGED" "$LOCAL" "abcdef1" "100644" "$REMOTE" "abcdef2" "100644"
[rebase]
    autoStash = true
    autoSquash = true
[fetch]
    recurseSubmodules = on-demand
    prune = true
[pull]
    ff = only
[merge]
    tool = conflictmarker
    conflictstyle = zdiff3
[merge "mergiraf"]
    name = mergiraf
    driver = mergiraf merge --git %O %A %B -s %S -x %X -y %Y -p %P
[mergetool]
    keepBackup = false
[mergetool "conflictmarker"]
    cmd = $EDITOR "$MERGED"
[commit]
    gpgsign = true
[tag]
    gpgSign = true
[status]
    short = true
    branch = true
    showUntrackedFiles = all
    showStash = true
    submoduleSummary = true
[help]
    autocorrect = 1
[log]
    abbrevCommit = true
    date = short
[interactive]
    singleKey = true
    diffFilter = delta --color-only
[advice]
    detachedHead = false
    skippedCherryPicks = false
[format]
    pretty = oneline
[delta]
    navigate = true
    features = gruvmax-fang zebra-dark
    dark = true
    side-by-side = true
    line-numbers = true
    relative-paths = true
    hyperlinks = true
[absorb]
    autoStageIfNothingStaged = true
[alias]
    ghost-rebase = "!sh -c 'b=$0; u=${1:-origin/master}; wt=$(mktemp -d -t rebwt.XXXXXX); git worktree add -f "$wt" "$b"; git -C "$wt" rebase "$u" || echo "Rebase incomplete"; git worktree remove --force "$wt"'"
    a = add
    ab=absorb --and-rebase
    b = branch -vv
    bd = branch -D
    c = commit
    ca = commit --amend --no-edit
    d = diff
    dft = -c diff.external=difft diff
    dl = -c diff.external=difft log -p --ext-diff
    ds = -c diff.external=difft show --ext-diff
    dt = difftool
    f = fetch
    fa = fetch --all
    ff = merge --ff-only
    find-merge = "!sh -c 'commit=$0 && branch=${1:-HEAD} && (git rev-list $commit..$branch --ancestry-path | cat -n; git rev-list $commit..$branch --first-parent | cat -n) | sort -k2 -s | uniq -f1 -d | sort -n | tail -1 | cut -f2'"
    fp = push --force-with-lease
    gone = !git for-each-ref --format '%(refname:short) %(upstream:track)' | awk '$2 == \"[gone]\" {print $1}' | xargs -r git branch -D
    l = log
    lm = log --pretty=medium
    m = merge
    mt = mergetool
    p = push
    r = rebase
    re = remote -v
    ri = rebase -i
    rt = restore
    s = status
    st = status --no-short
    stage = add
    staged = diff --cached
    sub = submodule
    subf = submodule foreach
    sw = switch
    swc = switch -c
    swd = switch -d
    undo = reset --hard
    unstage = reset HEAD --
    update=!git fetch && git merge --ff-only
[includeIf "gitdir:/home/*/work/"]
    path = config-work
[includeIf "gitdir:~/doxfiles/.git"]
    path = config-personal
[includeIf "gitdir:~/personal/"]
    path = config-personal