-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitconfig
136 lines (115 loc) · 3.08 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
[user]
name = dolelongan
email = [email protected]
[core]
autocrlf = input
excludesfile = /Users/np/.gitignore_global
pager=less -x4
# include sendemail config {{{
[include]
path = ~/.git-sendemail
# }}}
# color {{{
[color]
branch = auto
diff = auto
status = auto
[color "branch"]
current = red reverse
local = blue
remote = green
[color "diff"]
meta = yellow
frag = magenta
old = red bold
new = green
plain = white
[color "status"]
added = yellow
changed = green
untracked = cyan
# }}}
# push/pull/diff/options {{{
[push]
default = current
[pull]
default = current
[diff]
mnemonicprefix = true
[branch]
autosetuprebase = always
[apply]
whitespace = nowarn
#}}}
[rerere]
enabled = false
[rebase]
autosquash = true
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge --skip -- %f
required = true
process = git-lfs filter-process --skip
[credential]
helper = store
######################
### MY GIT ALIASES ###
######################
# alias {{{
[alias]
# basic {{{
st = status -s
cl = clone
ci = commit
br = branch
sw = switch
swb = checkout -
r = reset
pu = pull
# }}}
# commit {{{
aa = add .
amend = commit --amend
amend-rb = rebase -i
amend-HEAD = commit -a --amend -C HEAD
p = push
puf = push --force-with-lease
# }}}
# diff {{{
d = diff --word-diff
dc = diff --cached
# diff last commit
dlc = diff --cached HEAD^
# diff status: A git diff, but with only the filenames (which reminds me of git status)
diffst = diff --name-only
# }}}
# reset commands {{{
r1 = reset HEAD^
r2 = reset HEAD^^
rh = reset --hard
rh1 = reset HEAD^ --hard
rh2 = reset HEAD^^ --hard
# }}}
# local branch cleanup commands {{{
# branch delete here: Deletes all local branches that have already been merged to the branch that you're currently on
brdhere = !sh -c \"git branch --merged | grep -v '\\*' | xargs -n 1 git branch -d\"
sweep = ! "git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' | awk '$2 == \"[gone]\" {print $1}' | xargs -r git branch -D"
cleanup = ! "git sweep && git brdhere"
# }}}
# working with branches commands {{{
# list remotes
rem= "!git config -l | grep remote.*url | tail -n +2"
# worktree list
wl = worktree list
# history: This is pretty much the only way I look at my log.
# Aside from providing one-line logs, it also shows the branching in/out
hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
# list all branches remotely and locally
labr = branch -a
# sync branch
sync-up = "!sh -c 'current_branch=\"$(git symbolic-ref --short HEAD)\"; git branch -u origin/${current_branch} ${current_branch}; git remote set-head origin -a'"
rename-branch = "!f() { git branch --move $1; }; f"
# }}}
###################
### END ALIASES ###
###################