blob: 4b7bd9930c0ebaf9950d08c4592f1bb1da84f50b (
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
128
129
130
131
132
|
[user]
name = Anton Bobov
email = abobov@gmail.com
[http]
sslVerify = false
[color "diff-highlight"]
oldNormal = red bold
oldHighlight = red bold reverse
newNormal = "#009900" bold
newHighlight = "#009900" bold reverse
[color "diff"]
meta = 11
frag = magenta bold
commit = yellow bold
old = red bold
new = green bold
whitespace = red reverse
[diff]
tool = vimdiff
[difftool]
prompt = false
[diff-so-fancy]
stripLeadingSymbols = false
markEmptyLines = false
[grep]
lineNumber = true
[merge]
conflictstyle = diff3
stat = true
tool = vimdiff
[core]
pager = diff-so-fancy | less -+$LESS -FRX
excludesfile = ~/.gitignore
quotepath = false
[log]
decorate = short
mailmap = true
[alias]
aa = add --all
amend = commit --amend
ar = !sh -c 'git archive --format=tar --prefix="$(basename "$PWD")-$1/" $1^{tree} | bzip2 >"$(basename "$PWD")-$1.tar.bz2"' -
br = branch --sort=-committerdate
c = commit --verbose
co = checkout
ci = commit
diffstat = diff --stat -r
dc = diff --find-copies-harder --cached
di = diff --find-copies-harder
fix = commit --amend -C HEAD
history-all = "!gitk --all $( git fsck | awk '/dangling commit/ {print $3}'; git log -g --pretty='format:%H')"
k = !sh -c 'gitk $1' -
ka = !sh -c 'gitk --all' -
kb = !sh -c 'gitk --branches' -
lg = log --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
l = "!git lg -10"
f = !sh -c 'git branch | grep -F "feature/$1" | xargs -r -n 1 git co' -
st = status
stashlist = stash list --date=short
stash-all = stash save --include-untracked
sha = rev-parse --short
addnw = !sh -c 'git diff --unified=0 --ignore-all-space --no-color "$@" | git apply --cached --ignore-whitespace --unidiff-zero -'
branch-name = "!git rev-parse --abbrev-ref HEAD"
publish = "!git push -u origin $(git branch-name)"
# https://datagrok.org/git/git-serve/
quickserve="daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/"
# https://github.com/anishathalye/dotfiles/blob/master/gitconfig
update-submodules = submodule update --init --recursive
upgrade-submodules = submodule update --init --remote
wc = whatchanged -p --abbrev-commit --pretty=medium
undo = reset --soft HEAD~
whoami = config user.email
fugitive = mergetool --tool fugitive
clean-branches = !sh -c 'git branch --merged | grep -v '^*' | fzf -m | xargs -rp git branch -d'
# Gitlab merge requests helpers
mr = !sh -c 'git fetch $1 merge-requests/$2/head:mr-$1-$2 && git checkout mr-$1-$2' -
mr-clean = "!git for-each-ref refs/heads/mr/* --format='%(refname)' | while read ref ; do branch=${ref#refs/heads/} ; git branch -D $branch ; done"
recent = "!git for-each-ref --color=always --sort=-committerdate refs/heads --format='%(HEAD)%(color:yellow)%(refname:short)|%(color:magenta)%(authorname)%(color:reset)|%(color:bold green)%(committerdate:relative)|%(color:red)%(objectname:short)%(color:reset)'|column -ts'|'"
[advice]
statusHints = false
detachedHead = false
[branch]
autosetupmerge = always
autosetuprebase = local
sort = authordate
[rebase]
instructionFormat = %s [%an] {%ar}
[rerere]
enabled = true
[status]
submoduleSummary = true
[help]
autocorrect = 10
[credential]
helper = netrc
[remote-hg]
hg-git-compat = true
[filter "tabs"]
;clean = unexpand --tabs=4 --first-only
[gui]
tabsize = 2
gcwarning = false
[pull]
rebase = true
[push]
followTags = true
[guitool "meld"]
cmd = meld $FILENAME
noconsole = yes
needsfile = yes
[guitool "gvim"]
cmd = gvim $FILENAME
noconsole = yes
needsfile = yes
[include]
path = ~/.gitconfig.local
[filter "lfs"]
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
[mergetool "fugitive"]
cmd = vim -c \"Gdiff\" \"$MERGED\"
[fetch]
prune = true
# Allow pushing changes when working with a "read-only" remote from GitHub.
[url "git@github.com:"]
pushInsteadOf = https://github.com/
pushInsteadOf = git://github.com/
|