summaryrefslogtreecommitdiffstats
path: root/config/git/config
blob: 6bc1ece8df5a31d97c971ccd1ad8cb6871ed0c3a (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
[user]
	email = doy@tozt.net
	name = Jesse Luehrs
[alias]
	a = !git amend
	aliases = !git config --get-regexp 'alias.*' | perl -nle'/^alias\\.([^ ]*) (.*)/ && printf \"%-15s = %s\\n\", $1, $2'
	alias = "!f() { local name=$1; shift; git config --global alias.$name \"$*\"; }; f"
	amend = !git add -p && git commit --amend
	bd = "!f() { git choose-branch | head -n1 | xargs --no-run-if-empty git branch -D; }; f"
	bda = "!f() { git branch --merged $(git default-branch) --format='%(refname:short)' | grep -v \"^$(git default-branch)$\" | xargs -r git branch -d; }; f"
	blame-stats = !~/.bin/git/git-blame-stats
	br = for-each-ref --sort=committerdate refs/heads/ --format='%(align:30,left)%(HEAD) %(refname:short)%(end) %(color:magenta)(%(committerdate:relative))'
	choose-branch = "!f() { git for-each-ref --sort=-committerdate refs/heads/ --format='%(refname:short)' | sk --height 40% --no-sort --preview='git show {} -q --format=medium'; }; f"
	c = "!f() { git choose-branch | head -n1 | xargs --no-run-if-empty git co; }; f"
	cc = cherry-pick
	co = checkout
	default-branch = !~/.bin/git/git-default-branch
	diff-branch = "!f() { local branch=${1:-HEAD}; git diff $(git merge-base $(git default-branch) $branch) $branch; }; f"
	ff = merge --ff-only
	file-size = !~/.bin/git/git-file-size
	fixup = "!f() { git record --fixup \"$@\"; }; f"
	gc-aggressive = "!f() { git repack -Abd --window=250 --depth=250 --window-memory=1g && git prune --expire \"1 day ago\" && rm -f .git/gc.log && git gc; }; f"
	imerge = !~/.bin/git/git-imerge
	info = remote show -n origin
	lg = log --graph --pretty=format:'%Cred%h%Creset%C(yellow)%d%Creset %C(bold blue)%aN%Creset %C(magenta)(%ar)%Creset%n%s%n' --abbrev-commit --date=relative --stat=72
	m = "!f() { git co $(git default-branch) && git pull && EDITOR=true git merge --no-ff \"$@\" && git bda; }; f"
	pr = !~/.bin/git/git-pr
	prune-all = !git remote | xargs -n 1 git remote prune
	pushall = "!f() { for repo in origin github; do git push $repo \"$@\"; done; }; f"
	record = !git add -p && git commit --verbose
	refix = "!f() { env EDITOR=true git rebase -i \"$@\"; }; f"
	re = rebase -i @{u}
	r = !git record
	ri = rebase -i
	rv = checkout -p
	stashed = stash list --pretty=format:'%<(10)%gd: %Cred%h%Creset %Cgreen(%ar)%Creset%n  %s'
	st = status -sb
	start = "!f() { git commit --allow-empty -m 'initial commit' && git add . && git commit -m 'project skeleton'; }; f"
	track = "!f() { local name=$(git name-rev --name-only @); git branch --set-upstream-to=origin/$name $name; }; f"
[github]
	user = doy
[color]
	ui = auto
[core]
	excludesfile = ~/.config/git/ignore
	pager = delta
[push]
	default = current
[branch]
	autosetuprebase = always
[merge]
	conflictstyle = diff3
[rebase]
	autosquash = true
	autostash = true
[help]
	autocorrect = 5
[diff]
	mnemonicprefix = true
	external = difft
[advice]
	pushUpdateRejected = false
	statusHints = false
	commitBeforeMerge = false
	resolveConflict = false
	detachedHead = false
[rerere]
	enabled = true
[fetch]
	prune = true
[pull]
	rebase = true
[include]
	path = config.private
[interactive]
	diffFilter = delta --color-only
[delta]
	navigate = true
[init]
	defaultBranch = main

; vim:ft=gitconfig: