-
Notifications
You must be signed in to change notification settings - Fork 2
/
.gitconfig
138 lines (119 loc) · 3.29 KB
/
.gitconfig
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
# Core configuration
[core]
editor = /usr/bin/vim
excludesfile = ~/.gitignore_global
pager=less -x4
# User configuration
[user]
email = [email protected]
name = Heikki Hellgren
# Included configurations
[include]
path = ~/.git-sendemail
# Coloring
[color]
ui = auto
branch = auto
diff = auto
status = auto
# Branch coloring
[color "branch"]
current = red reverse
local = blue
remote = green
# Diff coloring
[color "diff"]
meta = yellow
frag = magenta
old = red bold
new = green
plain = white
# Status coloring
[color "status"]
added = yellow
changed = green
untracked = cyan
[push]
default = current
[pull]
default = current
[diff]
mnemonicprefix = true
[branch]
autosetuprebase = always
[alias]
# Common
st = status -s
cl = clone
ci = commit
co = checkout
br = branch
r = reset
cp = cherry-pick
gr = grep -Ii
diff = diff --word-diff
branch = branch -ra
grep = grep -Ii
bra = branch -ra
ai = add --interactive
f = "!git ls-files | grep -i"
cm = commit -m
cma = commit -a -m
ca = commit --amend
amend = commit --amend
caa = commit -a --amend -C HEAD
undo = reset --hard
rv = checkout --
unstage = reset HEAD
url = remote -v
lasttag = describe --tags --abrev=0
ac = !git add . && git add -u && git commit -a
acm = "!f() { git add . && git commit -m \"$(echo $@)\"; }; f"
current-branch = !git branch | grep '^*' | sed s/\\*\\ //
# Log aliases
lp = log -p
rank = shortlog -n -s --no-merges
ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
lf = log --pretty=fuller
lc = "!f() { git ll "$1"^.."$1"; }; f"
lnc = log --pretty=format:"%h\\ %s\\ [%cn]"
fl = log -u
filelog = log -u
# Diffing
d = diff --word-diff
dc = diff --cached
dlc = diff --cached HEAD^
dr = "!f() { git diff -w "$1"^.."$1"; }; f"
diffr = "!f() { git diff "$1"^.."$1"; }; f"
# Reseting
r1 = reset HEAD^
r2 = reset HEAD^^
rh = reset --hard
rh1 = reset HEAD^ --hard
rh2 = reset HEAD^^ --hard
# Stashing
sl = stash list
sa = stash apply
ss = stash save
# Checkout
ours = "!f() { git co --ours $@ && git add $@; }; f"
theirs = "!f() { git co --theirs $@ && git add $@; }; f"
# Workflow
#
## Starts feature branch from master
start = "!f(){ b=$1; git checkout master; git fetch; git rebase; git checkout -b "$b" master; };f"
## Finishes feature branch and deletes it
finish = "!f(){ b=$(git current-branch); git checkout master; git branch -d "$b"; git push origin ":$b"; };f"
## Publishes the current branch to github
publish = "!git push -u origin $(git current-branch)"
## Unpublishes the branch to github
unpublish = "!git push origin :$(git current-branch)"
## Removes all merged branches
bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"
# Create initial commit
empty = "!git commit -am\"[empty] Initial commit\" --allow-empty"
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true