Browse code

Add config alias filter-meta

Robert Cranston authored on 31/10/2023 16:56:35
Showing 1 changed files
... ...
@@ -260,6 +260,19 @@
260 260
 	  | eval \"LESS=${LESS-FRX} $(git var GIT_PAGER)\"; \
261 261
 	}; f"
262 262
 
263
+	; Filter meta.
264
+	filter-meta = "!f() { : git filter-branch ; \
265
+	  name=\"$1\";  shift; \
266
+	  email=\"$1\"; shift; \
267
+	  git filter-branch \"$@\" --env-filter \" \
268
+	    GIT_AUTHOR_NAME=\\\"$name\\\"; \
269
+	    GIT_AUTHOR_EMAIL=\\\"$email\\\"; \
270
+	    GIT_COMMITTER_NAME=\\\"$name\\\"; \
271
+	    GIT_COMMITTER_EMAIL=\\\"$email\\\"; \
272
+	    GIT_COMMITTER_DATE=\\\"\\$GIT_AUTHOR_DATE\\\"; \
273
+	  \" ; \
274
+	}; f"
275
+
263 276
 	; Log.
264 277
 	l = "!f() { : git log ; \
265 278
 	  git config --get-colorbool color.diff && color_diff=always; \
Browse code

Add config alias refdiff

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -245,6 +245,21 @@
245 245
 	  done; \
246 246
 	}; f"
247 247
 
248
+	; Refdiff.
249
+	refdiff = "!f() { : git diff ; \
250
+	  git config --get-colorbool color.diff && color_diff=always; \
251
+	  git reflog --pretty='format:%h: %gs' \
252
+	  | awk -F': ' '$2~/(commit|rebase).*\\((amend|finish)\\)/{print $1}' \
253
+	  | while read -r ref; \
254
+	  do \
255
+	    git -c color.diff=$color_diff show --no-patch $ref; \
256
+	    echo; \
257
+	    git -c color.diff=$color_diff diff \"$@\" $ref HEAD; \
258
+	    echo; \
259
+	  done \
260
+	  | eval \"LESS=${LESS-FRX} $(git var GIT_PAGER)\"; \
261
+	}; f"
262
+
248 263
 	; Log.
249 264
 	l = "!f() { : git log ; \
250 265
 	  git config --get-colorbool color.diff && color_diff=always; \
Browse code

Add config alias browse

Robert Cranston authored on 12/02/2023 03:55:41
Showing 1 changed files
... ...
@@ -231,6 +231,20 @@
231 231
 	  | sort -u; \
232 232
 	}; f"
233 233
 
234
+	; Browse.
235
+	browse ="!f() { : ; \
236
+	  set --; \
237
+	  urls=\"$(git remote get-url ${@:-$(git remote)})\"; \
238
+	  for url in $urls; \
239
+	  do \
240
+	    echo $url; \
241
+	    { [ $(command -v xdg-open) ] && xdg-open \"$url\"; } || \
242
+	    { [ $(command -v open)     ] && open     \"$url\"; } || \
243
+	    { [ $(command -v start)    ] && start    \"$url\"; } || \
244
+	    echo \"$@\"; \
245
+	  done; \
246
+	}; f"
247
+
234 248
 	; Log.
235 249
 	l = "!f() { : git log ; \
236 250
 	  git config --get-colorbool color.diff && color_diff=always; \
Browse code

Add config alias users

Robert Cranston authored on 08/01/2023 01:48:43
Showing 1 changed files
... ...
@@ -224,6 +224,13 @@
224 224
 	  git ls-files \"$@\" | tree -n ${color_tree+-C} --fromfile; \
225 225
 	}; f"
226 226
 
227
+	; Users.
228
+	users = "!f() { : git log ; \
229
+	  git log --pretty=full \"$@\" \
230
+	  | sed -n 's/^\\(Author\\|Commit\\): \\(.*\\)/\\2/p' \
231
+	  | sort -u; \
232
+	}; f"
233
+
227 234
 	; Log.
228 235
 	l = "!f() { : git log ; \
229 236
 	  git config --get-colorbool color.diff && color_diff=always; \
Browse code

Add config alias tree

Robert Cranston authored on 19/12/2022 05:55:01
Showing 1 changed files
... ...
@@ -218,6 +218,12 @@
218 218
 	  | eval \"LESS=${LESS-FRX} $(git var GIT_PAGER)\"; \
219 219
 	}; f"
220 220
 
221
+	; Tree.
222
+	tree = "!f() { : git ls-files ; \
223
+	  git config --get-colorbool color.tree && color_tree=always; \
224
+	  git ls-files \"$@\" | tree -n ${color_tree+-C} --fromfile; \
225
+	}; f"
226
+
221 227
 	; Log.
222 228
 	l = "!f() { : git log ; \
223 229
 	  git config --get-colorbool color.diff && color_diff=always; \
Browse code

Add config alias all

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -172,6 +172,52 @@
172 172
 	compactt = tformat:%C(BrightYellow)%h%x09%C(BrightMagenta)%>(1       )%ar%x09%C(BrightBlue)%<(1       )%aN%x09%C(BrightWhite)%s%C(auto)%d
173 173
 
174 174
 [alias]
175
+	; All.
176
+	all = "!f() { : ; \
177
+	  [ -t 1 ] && terminal=y; \
178
+	  git config --get-colorbool color.all && color_all=always; \
179
+	  git config --get-colorbool color.ui  && color_ui=always; \
180
+	  find . -type d -name '*.git' -prune \
181
+	  | sed 's#^\\./\\.git$\\|^\\./\\|/\\.git$##g' \
182
+	  | sort \
183
+	  | awk '{ \
184
+	    for (parent in parents) \
185
+	      if ($0 ~ \"^\" parent) \
186
+	        next; \
187
+	    parents[$0]; \
188
+	    print; \
189
+	  }' \
190
+	  | { \
191
+	    if [ $# -eq 0 ]; \
192
+	    then \
193
+	      if [ $terminal ]; \
194
+	      then \
195
+	        tree -n ${color_all+-C} --fromfile; \
196
+	      else \
197
+	        cat; \
198
+	      fi; \
199
+	    else \
200
+	      if [ $color_all ]; \
201
+	      then \
202
+	        get_color() { git -C \"$path\" config --get-color \"$@\"; }; \
203
+	        color_reset=$(get_color '' reset); \
204
+	        color_all_header=$(get_color color.all.header yellow); \
205
+	      fi; \
206
+	      while read -r path; \
207
+	      do \
208
+	        output=$(git -C \"$path\" -c color.ui=$color_ui \"$@\" 2>&1); \
209
+	        [ \"$output\" ] || continue; \
210
+	        printf '%s%s%s\\n%s\\n\\n' \
211
+	          \"$color_all_header\" \
212
+	          \"$path\" \
213
+	          \"$color_reset\" \
214
+	          \"$output\"; \
215
+	      done; \
216
+	    fi; \
217
+	  } \
218
+	  | eval \"LESS=${LESS-FRX} $(git var GIT_PAGER)\"; \
219
+	}; f"
220
+
175 221
 	; Log.
176 222
 	l = "!f() { : git log ; \
177 223
 	  git config --get-colorbool color.diff && color_diff=always; \
Browse code

Add config alias log

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -167,12 +167,21 @@
167 167
 	maxStack = 100
168 168
 
169 169
 [pretty]
170
-	patch   =  format:%C(BrightYellow)commit %h%C(auto)%d%n%C(BrightYellow)Author: %aN <%aE>%n%C(BrightYellow)Date:   %ad%n%n%C(Yellow)%s%n
171
-	compact = tformat:%C(BrightYellow)%h %C(BrightMagenta)%>(13,trunc)%ar %C(BrightBlue)%<(15,trunc)%aN %C(BrightWhite)%s%C(auto)%d
170
+	patch    =  format:%C(BrightYellow)commit %h%C(auto)%d%n%C(BrightYellow)Author: %aN <%aE>%n%C(BrightYellow)Date:   %ad%n%n%C(Yellow)%s%n
171
+	compact  = tformat:%C(BrightYellow)%h%x20%C(BrightMagenta)%>(13,trunc)%ar%x20%C(BrightBlue)%<(15,trunc)%aN%x20%C(BrightWhite)%s%C(auto)%d
172
+	compactt = tformat:%C(BrightYellow)%h%x09%C(BrightMagenta)%>(1       )%ar%x09%C(BrightBlue)%<(1       )%aN%x09%C(BrightWhite)%s%C(auto)%d
172 173
 
173 174
 [alias]
174 175
 	; Log.
175
-	l  = log --graph --pretty=compact
176
+	l = "!f() { : git log ; \
177
+	  git config --get-colorbool color.diff && color_diff=always; \
178
+	  git -c color.diff=$color_diff log --graph --pretty=compactt \"$@\" \
179
+	  | sed -E 's/^([^\\t]+\\t[^\\t,]+)(,.+)? ago(.*\\t.*)$/\\1\\3/' \
180
+	  | sed -E 's/^(.*) +(.*[0-9a-f]{7}.*\\t)/\\1\\t\\2/' \
181
+	  | sed -E 's/ *$//' \
182
+	  | column -t -o ' ' -s \"$(printf '\\t')\" \
183
+	  | eval \"LESS=${LESS-FRX} $(git var GIT_PAGER)\"; \
184
+	}; f"
176 185
 	ls = log --oneline --decorate=no
177 186
 	lf = log --first-parent
178 187
 	lp = log --patch --pretty=patch
Browse code

Add config alias

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -165,3 +165,77 @@
165 165
 [absorb]
166 166
 	; https://github.com/tummychow/git-absorb
167 167
 	maxStack = 100
168
+
169
+[pretty]
170
+	patch   =  format:%C(BrightYellow)commit %h%C(auto)%d%n%C(BrightYellow)Author: %aN <%aE>%n%C(BrightYellow)Date:   %ad%n%n%C(Yellow)%s%n
171
+	compact = tformat:%C(BrightYellow)%h %C(BrightMagenta)%>(13,trunc)%ar %C(BrightBlue)%<(15,trunc)%aN %C(BrightWhite)%s%C(auto)%d
172
+
173
+[alias]
174
+	; Log.
175
+	l  = log --graph --pretty=compact
176
+	ls = log --oneline --decorate=no
177
+	lf = log --first-parent
178
+	lp = log --patch --pretty=patch
179
+	lpw  = lp --color-words='[_[:alnum:]]+|[^[:space:]]'
180
+	lpww = lp --color-words='.'
181
+	la    = l    --all
182
+	lsa   = ls   --all
183
+	lfa   = lf   --all
184
+	lpa   = lp   --all
185
+	lpwa  = lpw  --all
186
+	lpwwa = lpww --all
187
+
188
+	; Status.
189
+	s  = status
190
+	ss = status --short
191
+	sb = status --short --branch
192
+	sa  = s  --ignored
193
+	ssa = ss --ignored
194
+	sba = sb --ignored
195
+
196
+	; Diff.
197
+	d  = diff
198
+	du = diff @{upstream}
199
+	dp = diff @{push}
200
+	dc  = d  --cached
201
+	duc = du --cached
202
+	dpc = dp --cached
203
+	dw   = d   --color-words='[_[:alnum:]]+|[^[:space:]]'
204
+	duw  = du  --color-words='[_[:alnum:]]+|[^[:space:]]'
205
+	dpw  = dp  --color-words='[_[:alnum:]]+|[^[:space:]]'
206
+	dcw  = dc  --color-words='[_[:alnum:]]+|[^[:space:]]'
207
+	ducw = duc --color-words='[_[:alnum:]]+|[^[:space:]]'
208
+	dpcw = dpc --color-words='[_[:alnum:]]+|[^[:space:]]'
209
+	dww   = d   --color-words='.'
210
+	duww  = du  --color-words='.'
211
+	dpww  = dp  --color-words='.'
212
+	dcww  = dc  --color-words='.'
213
+	ducww = duc --color-words='.'
214
+	dpcww = dpc --color-words='.'
215
+
216
+	; Add.
217
+	au = add -u
218
+	aa = add -A
219
+
220
+	; Commit.
221
+	c  = commit
222
+	ca = commit --amend
223
+
224
+	; Rebase.
225
+	ri = rebase -i
226
+	ro = rebase -i --root
227
+	rr = rebase --continue
228
+
229
+	; Fetch.
230
+	f = fetch
231
+
232
+	; Push.
233
+	p  = push
234
+	pf = push --force-with-lease
235
+
236
+	; Clean ignored files (requires either `-f`, `-i` or `-n`).
237
+	x = clean -Xd
238
+
239
+	; Contains.
240
+	contains = tag --contains
241
+	; contains = describe --contains
Browse code

Add config absorb

Robert Cranston authored on 31/10/2023 16:57:58
Showing 1 changed files
... ...
@@ -161,3 +161,7 @@
161 161
 	  253, 2  weeks ago, \
162 162
 	  254, 1  weeks ago, \
163 163
 	  255
164
+
165
+[absorb]
166
+	; https://github.com/tummychow/git-absorb
167
+	maxStack = 100
Browse code

Add config color

Robert Cranston authored on 08/01/2023 11:23:28
Showing 1 changed files
... ...
@@ -104,3 +104,60 @@
104 104
 
105 105
 [blame]
106 106
 	date = relative
107
+
108
+[log]
109
+	graphColors = \
110
+	  BrightRed, \
111
+	  BrightGreen, \
112
+	  BrightYellow, \
113
+	  BrightBlue, \
114
+	  BrightMagenta, \
115
+	  BrightCyan
116
+
117
+[diff]
118
+	colorMoved   = zebra
119
+	colorMovedWS = ignore-space-change
120
+
121
+[color "diff"]
122
+	meta                      = BrightBlue
123
+	frag                      =       Blue
124
+	func                      =       Blue
125
+	commit                    = BrightYellow
126
+	whitespace                = BrightRed
127
+	plain                     =       Yellow
128
+	context                   = BrightWhite
129
+	contextBold               = BrightWhite
130
+	contextDimmed             =       White
131
+	old                       = BrightRed
132
+	oldBold                   = BrightRed
133
+	oldDimmed                 =       Red
134
+	new                       = BrightGreen
135
+	newBold                   = BrightGreen
136
+	newDimmed                 =       Green
137
+	oldMoved                  = BrightMagenta
138
+	oldMovedDimmed            =       Magenta
139
+	oldMovedAlternative       =       Magenta
140
+	oldMovedAlternativeDimmed =       Magenta
141
+	newMoved                  = BrightCyan
142
+	newMovedDimmed            =       Cyan
143
+	newMovedAlternative       =       Cyan
144
+	newMovedAlternativeDimmed =       Cyan
145
+
146
+[blame]
147
+	coloring = repeatedLines
148
+	; coloring = highlightRecent
149
+
150
+[color "blame"]
151
+	repeatedLines = White
152
+	highlightRecent = \
153
+	  245, 1  years ago, \
154
+	  246, 6 months ago, \
155
+	  247, 5 months ago, \
156
+	  248, 4 months ago, \
157
+	  249, 3 months ago, \
158
+	  250, 2 months ago, \
159
+	  251, 4  weeks ago, \
160
+	  252, 3  weeks ago, \
161
+	  253, 2  weeks ago, \
162
+	  254, 1  weeks ago, \
163
+	  255
Browse code

Add config date

Robert Cranston authored on 08/01/2023 11:26:38
Showing 1 changed files
... ...
@@ -98,3 +98,9 @@
98 98
 [log]
99 99
 	abbrevCommit = true
100 100
 	decorate = short
101
+
102
+[log]
103
+	date = relative
104
+
105
+[blame]
106
+	date = relative
Browse code

Add config ui

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -90,3 +90,11 @@
90 90
 
91 91
 [format]
92 92
 	notes = true
93
+
94
+[status]
95
+	showStash = true
96
+	submoduleSummary = true
97
+
98
+[log]
99
+	abbrevCommit = true
100
+	decorate = short
Browse code

Add config notes

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -84,3 +84,9 @@
84 84
 [fetch "fsck"]
85 85
 	zeroPaddedFilemode = warn
86 86
 	badTimezone        = warn
87
+
88
+[notes]
89
+	rewriteRef = refs/notes/commits
90
+
91
+[format]
92
+	notes = true
Browse code

Add config protocol

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -54,3 +54,33 @@
54 54
 [diff]
55 55
 	renames   = copies
56 56
 	algorithm = histogram
57
+
58
+[url "ssh://git@"]
59
+	pushInsteadOf = https://
60
+
61
+[protocol]
62
+	allow = never
63
+
64
+[protocol "file"]
65
+	allow = always
66
+
67
+[protocol "ssh"]
68
+	allow = always
69
+
70
+[protocol "https"]
71
+	allow = always
72
+
73
+[transfer]
74
+	fsckObjects = true
75
+
76
+[fsck]
77
+	zeroPaddedFilemode = warn
78
+	badTimezone        = warn
79
+
80
+[receive "fsck"]
81
+	zeroPaddedFilemode = warn
82
+	badTimezone        = warn
83
+
84
+[fetch "fsck"]
85
+	zeroPaddedFilemode = warn
86
+	badTimezone        = warn
Browse code

Add config diff

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -43,3 +43,14 @@
43 43
 [merge]
44 44
 	ff = false
45 45
 	autoStash = true
46
+	conflictStyle = diff3
47
+
48
+[am]
49
+	threeWay = true
50
+
51
+[rerere]
52
+	enabled = true
53
+
54
+[diff]
55
+	renames   = copies
56
+	algorithm = histogram
Browse code

Add config branch

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -13,3 +13,33 @@
13 13
 
14 14
 [init]
15 15
 	templateDir = ~/.gittemplate
16
+	defaultBranch = master
17
+	; defaultBranch = main
18
+
19
+[remote]
20
+	pushDefault = origin
21
+
22
+[push]
23
+	default = current
24
+	recurseSubmodules = check
25
+
26
+[branch]
27
+	autoSetupMerge  = always
28
+	autoSetupRebase = always
29
+
30
+[fetch]
31
+	prune     = true
32
+	pruneTags = true
33
+
34
+[rebase]
35
+	autoSquash = true
36
+	autoStash  = true
37
+	updateRefs = true
38
+	missingCommitsCheck = error
39
+
40
+[pull]
41
+	rebase = merges
42
+
43
+[merge]
44
+	ff = false
45
+	autoStash = true
Browse code

Add config path

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
... ...
@@ -7,3 +7,9 @@
7 7
 	; terminal, which leaves (potentially log) text on the screen and
8 8
 	; disables mouse scrolling.
9 9
 	pager = less -+X
10
+	hooksPath      = ~/.githooks
11
+	excludesFile   = ~/.gitignore
12
+	attributesFile = ~/.gitattributes
13
+
14
+[init]
15
+	templateDir = ~/.gittemplate
Browse code

Add config pager

Robert Cranston authored on 31/10/2023 17:33:53
Showing 1 changed files
... ...
@@ -1,2 +1,9 @@
1 1
 [include]
2 2
 	path = ~/.gitconfig-user
3
+
4
+[core]
5
+	; Git sets `$LESS` to `FRX` if it's not already set. `X` disables
6
+	; sending termcap initialization and deinitialization strings to the
7
+	; terminal, which leaves (potentially log) text on the screen and
8
+	; disables mouse scrolling.
9
+	pager = less -+X
Browse code

Add config user

Robert Cranston authored on 18/12/2022 04:28:27
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,2 @@
1
+[include]
2
+	path = ~/.gitconfig-user