-
Notifications
You must be signed in to change notification settings - Fork 13
/
gitconfig.symlink
167 lines (129 loc) · 4.37 KB
/
gitconfig.symlink
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
[user]
# Do not guess the user's identity.
# https://github.com/git/git/blob/90f7b16b3adc78d4bbabbd426fb69aa78c714f71/Documentation/config.txt#L2847-L2855
useConfigOnly = true
# [!] DO NOT store sensitive information such as the Git user
# credentials (`name` / `email`), or things such as the `signingkey`
# in this file, add them in `~/.gitconfig.local`!
[alias]
cleanup = "!git remote prune origin && git gc && git clean -df && git stash clear"
# Remove branches that have already been merged with master
# a.k.a. ‘delete merged’
dm = "!git branch --merged | grep -v '\\*' | xargs -n 1 git branch -d"
day = "!sh -c 'git log --reverse --no-merges --branches=* --date=local --after=\"yesterday 11:59PM\" --author=\"`git config --get user.name`\"'"
# find commits by source code
fc = "!f() { git log --pretty=format:'%C(yellow)%h %Cblue%ad %Creset%s%Cgreen [%cn] %Cred%d' --decorate --date=short -S$1; }; f"
[core]
excludesfile = ~/.gitignore
attributesfile = ~/.gitattributes
editor = nvim
pager = delta
# Treat spaces before tabs and all kinds of trailing whitespace as an error
# [default] trailing-space: looks for spaces at the end of a line
# [default] space-before-tab: looks for spaces before tabs at the beginning of a line
whitespace = space-before-tab,-indent-with-non-tab,trailing-space
# Make `git rebase` safer on macOS
# More info: <http://www.git-tower.com/blog/make-git-rebase-safe-on-osx/>
trustctime = false
# Prevent showing files whose names contain non-ASCII symbols as unversioned.
# http://michael-kuehnel.de/git/2014/11/21/git-mac-osx-and-german-umlaute.html
precomposeUnicode = true
# Speed up commands involving untracked files such as `git status`.
# https://git-scm.com/docs/git-update-index#_untracked_cache
untrackedCache = true
[init]
defaultBranch = main
[apply]
# Detect whitespace errors when applying a patch
whitespace = fix
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true # use n and N to move between diff sections
light = false # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)
[merge]
# tool = vimdiff
conflictstyle = diff3
[pager]
# https://github.com/dandavison/delta
diff = delta | less --tabs=4 -RFX
show = delta | less --tabs=4 -RFX
[color]
ui = auto
[color "diff"]
meta = yellow bold
commit = green bold
frag = magenta bold
old = red bold
new = green bold
whitespace = red reverse
newMoved = cyan
oldMoved = blue
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "status"]
added = yellow
changed = green
untracked = cyan
[mergetool]
prompt = true
[mergetool "vimdiff"]
cmd = nvim -d $LOCAL $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J'
[difftool]
prompt = false
[diff]
# tool = vimdiff
# Show blocks of moved text of at least 20 alphanumeric characters differently than adds/deletes
# https://git-scm.com/docs/git-diff#git-diff-zebra
colorMoved = default
[url "[email protected]:"]
insteadOf = "gh:"
pushInsteadOf = "github:"
pushInsteadOf = "git://github.com/"
[url "git://github.com/"]
insteadOf = "github:"
[url "[email protected]:"]
insteadOf = "gst:"
pushInsteadOf = "gist:"
pushInsteadOf = "git://gist.github.com/"
[url "git://gist.github.com/"]
insteadOf = "gist:"
[help]
# If a command is mistyped, make Git automatically
# run the command it thinks the user wanted to type.
autocorrect = immediate
[pull]
rebase = false
# push easily. http://stackoverflow.com/a/23918418/89484
[push]
default = current
# Make `git push` automatically push relevant
# annotated tags when pushing branches out.
followTags = true
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true
[fetch]
prune = true
[stash]
showPatch = true
[log]
date = relative
[filter "gitignore"]
clean = "sed '/#gitignore$/d'"
smudge = cat
[include]
# Load local configs.
# https://git-scm.com/docs/git-config#_includes
#
# [!] The following needs to remain at the end of this file in
# order to allow any of the above configs to be overwritten
# by the local ones
path = ~/.gitconfig.local
[gpg]
format = ssh
[commit]
gpgSign = true