summaryrefslogtreecommitdiff
path: root/dot_config/git/config
blob: 633c67fb2c980eff9f58a7da38201357e60d38ef (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
[alias]
	aa = add -A
	bd = branch -D
	ci = commit
	co = checkout
	df = difftool
	st = status
	root = rev-parse --show-toplevel
[branch]
	sort = -committerdate
[column]
	ui = auto
[commit]
	verbose = true
[core]
	# excludesFile: reminder that it defaults to ~/.config/git/ignore
	fsmonitor = true
	untrackedcache = true
[diff]
	algorithm = histogram
	colorMoved = plain
	mnemonicPrefix = true
	renames = true
[fetch]
	all = true
	prune = true
	pruneTags = true
[gpg]
	format = ssh
[gpg "ssh"]
	allowedSignersFile = "~/.config/git/signers.ssh"
	defaultKeyCommand = "ssh-add -L" # default: first key in agent
[help]
	autocorrect = prompt
[init]
	defaultBranch = main
[log]
	# WHATWG Dates and Times Microsyntax
	# I legitimately like this one ever since I implemented janet-date.
	# It's the one that makes the most sense, at least to me.
	date = "format:%F %T%z"
[merge]
	conflictstyle = zdiff3
[pull]
	rebase = true
[push]
	autoSetupRemote = true
	default = simple
	followTags = true
[rebase]
	autoSquash = true
	autoStash  = true
	updateRefs = true
[rerere]
	enabled = true
	autoupdate = true
[sendemail]
	from = code@toast.bunkerlabs.net
	smtpencryption = tls
	smtpserver = smtp.migadu.com
	smtpserverport = 465
	smtpuser = toast@bunkerlabs.net
[status]
	branch = true
	short = true
[tag]
	sort = version:refname
[user]
	email = code@toast.bunkerlabs.net
	name = Chloé Vulquin

# platform includes
[includeIf "gitdir:/home/"]
	path = "linux.config"

[includeIf "gitdir:/Users/"]
	path = "macos.config"

[include]
	path = "local.config"

# intended workflow:
# own projects: clone with me: (github), st: (sr.ht toast), gt: (github toast)
# github projects: clone with gh:
# sr.ht projetcts: clone with srht:
# potential TODO: clone gh: but push to st: fork ? may not be possible
# it would be possible if you could have something like:
# [remote "me"]
# 	url = st:*
# and the * was somehow implied to be $(basename $origin)

# me:
[url "anna:git/"]
	insteadOf = "me:"

[url "git@git.sr.ht:~spacetoast/"]
	insteadOf = "st:"

# github
[url "https://github.com/"]
	insteadOf = "gh:"

[url "git@github.com:"]
	pushInsteadOf = "https://github.com/"
	pushInsteadOf = "gh:"

# sr.ht
[url "https://git.sr.ht/"]
	insteadOf = "srht:"

[url "git@git.sr.ht:"]
	pushInsteadOf = "https://git.sr.ht/"
	pushInsteadOf = "srht:"

# filters
[filter "lfs"]
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true
	clean = git-lfs clean -- %f