/
dot.gitconfig.in
148 lines (145 loc) · 2.8 KB
/
dot.gitconfig.in
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
# my gitconfig
[user]
name = Kana Natsuno
email = dev@whileimautomaton.net
[color]
ui = auto
[core]
pager = less -r
excludesfile = ~/.gitignore
[push]
default = current
[url "https://github.com/"]
insteadOf = git://github.com/
[alias]
ap = add -p
au = add -u
b = !git --no-pager branch
ba = branch -a
bd = branch -d
bgc = <<<
git branch --merged master |
grep -vw master |
grep -vF '*' |
grep -vF '+' |
xargs git branch -d
>>>
bgcr = <<<
git branch --merged master -r |
grep -vw master |
grep -vF '*' |
sed 's![^/]*/!!' |
sort -u |
xargs git pushall --delete
>>>
br = branch -r
ci = commit
co = checkout
cob = checkout -b
cop = checkout -p
cp = cherry-pick
d = diff
db = diff HEAD
ds = diff --cached
du = diff
f = fetch
fix = commit --amend
fixup = !git fu
fu = commit --amend -C HEAD
g = grep
l = log
l1 = log --pretty=oneline --abbrev-commit
lg = log --graph --pretty=oneline --abbrev-commit --decorate
lgd = !git lg
lgD = !git lg --no-decorate
lgr = !git --no-pager lg -n10
lgrr = !git --no-pager lg -n20
lgrrr = !git --no-pager lg -n30
lgrrrr = !git --no-pager lg -n40
lp = log -p
lr = <<<
n=10
a1="${1:-$n}"
a2="$2"
if ! [ "${a1##[0-9]*}" = "" ]
then
t="$a1"
a1="${a2:-$n}"
a2="$t"
fi
git --no-pager l1 --reverse --decorate -n"$a1" "${a2:-HEAD}"
>>>
lrr = !git lr -n20
lrrr = !git lr -n30
lrrrr = !git lr -n40
ls = ls-files
m = merge --log
mb = merge-base
merge-to-integrate = !git mi
merge-to-pull = !git mp
mi = merge --no-ff
mp = merge --ff-only
pullall = <<<
git fetch --all --prune
git merge --ff-only github/master
>>>
pushall = <<<
for remote in $(
git config --get-regexp \
'^remote\..*\.url$' \
"^(git@github\.com:kana|$HOME/Dropbox)" \
| sed 's/^remote\.\([^.]*\)\.url .*$/\1/'
)
do
echo "# ------------------------------"
echo "# git push $remote $@"
git push "$remote" "$@"
done
>>>
ra = rebase --abort
rc = rebase --continue
review = <<<
if [[ 0 -le $# && $# -le 2 && "$1" != '-h' ]]
then
git log -p --reverse "${1:-master}..${2:-HEAD}" --
else
echo 'Usage: git review [INTEGRATED=master] [TOPIC=HEAD]'
fi
>>>
rh = reset --hard
ri = <<<
git rebase -i "HEAD~${1:-10}"
>>>
rib = <<<
git rebase -i $(git merge-base "${1:-HEAD}" HEAD)
>>>
rp = reset -p
rs = reset --soft
rw = reset --hard ORIG_HEAD
rx = reset --mixed
s = show
s1 = show HEAD~1
s2 = show HEAD~2
s3 = show HEAD~3
sa = stash apply
sd = stash drop
sf = show --format=fuller
since = <<<
git lg "$1..HEAD" --
>>>
sl = stash list
sm = submodule
sma = submodule add
smi = submodule init
sms = submodule status
smu = submodule update
sp = stash pop
ss = stash save
st = status
t = tag
td = tag -d
tv = <<<
git tag "v$1" -m "Version $1"
>>>
# __END__
# vim: filetype=gitconfig