]> git.phdru.name Git - dotfiles.git/blob - .gitconfig
.gitconfig: edit all files of the given type
[dotfiles.git] / .gitconfig
1 [alias]
2 # I copied some aliases from http://gitalias.com/ and other sources.
3 # Some I've added to gitalias. Some are mine.
4
5   # One letter alias for our most frequent commands.
6   a = add
7   b = branch
8   c = commit
9   d = diff
10   f = fetch
11   g = grep
12   l = log
13   m = merge
14   o = checkout
15   p = pull
16   r = remote
17   s = status
18   w = whatchanged
19
20   ### add ###
21
22   aa = add --all
23
24   ap = add --patch
25
26   au = add --update
27
28   ### branch ###
29
30   be = branch --edit-description
31
32   bm = branch --merged
33
34   bnm = branch --no-merged
35
36   ### commit ###
37
38   cm = commit --message
39
40   ### checkout ###
41
42   co = checkout
43
44   ### cherry-pick ###
45
46   chp = cherry-pick
47
48   ### diff ###
49
50   # diff - show changes not yet staged
51   dc = diff --cached
52
53   # diff - changes about to be commited
54   ds = diff --staged
55
56   # diff - show changes but by word, not line
57   dw = diff --word-diff
58
59   ### rebase ###
60
61   rb = rebase
62
63   rba = rebase --abort
64
65   rbc = rebase --continue
66
67   rbs = rebase --skip
68
69   ### remote ###
70
71   rs = remote show
72
73   ru = remote update
74
75   rp = remote prune
76
77   incoming = !git remote update --prune; git log ..@{upstream}
78   outgoing = log @{upstream}..
79
80   # Push to all remotes
81   push-to-all-remotes = !git remote | xargs -I% -n1 git push %
82
83   ### show-branch ###
84
85   # show-branch - print a list of branches and their commits.
86   sb = show-branch
87
88   ### status ###
89
90   ss = status --short
91
92   ssb = status --short --branch
93
94   aliases = !"git config --get-regexp 'alias.*' | colrm 1 6 | sed 's/[ ]/ = /'"
95
96   add-alias = "!f() { [ $# = 3 ] && git config $1 alias.\"$2\" \"$3\" && return 0 || echo \"Usage: git add-(local|global)-alias <new alias> <original command>\" >&2 && return 1; }; f"
97   add-global-alias = "!git add-alias --global"
98   add-local-alias = "!git add-alias --local"
99
100   tags = tag -n1 --list
101
102   # Find text in any commit ever
103   grep-all = !"f() { git rev-list --all | xargs git grep \"$@\"; }; f"
104
105   # Edit all files of the given type
106   edit-cached = !"f() { git ls-files --cached | sort -u ; }; \"${VISUAL:-${EDITOR:-vi}}\" `f`"
107   edit-deleted = !"f() { git ls-files --deleted | sort -u ; }; \"${VISUAL:-${EDITOR:-vi}}\" `f`"
108   edit-others = !"f() { git ls-files --others | sort -u ; }; \"${VISUAL:-${EDITOR:-vi}}\" `f`"
109   edit-ignored = !"f() { git ls-files --ignored | sort -u ; }; \"${VISUAL:-${EDITOR:-vi}}\" `f`"
110   edit-killed = !"f() { git ls-files --killed | sort -u ; }; \"${VISUAL:-${EDITOR:-vi}}\" `f`"
111   edit-modified = !"f() { git ls-files --modified | sort -u ; }; \"${VISUAL:-${EDITOR:-vi}}\" `f`"
112   edit-stage = !"f() { git ls-files --stage | cut -f2 | sort -u ; }; "${VISUAL:-${EDITOR:-vi}}" `f`"
113
114   # Editing and adding conflicted files: when we get many merge conflicts
115   # and want to quickly solve them using an editor, then add the  files.
116   edit-unmerged = !"f() { git ls-files --unmerged | cut -f2 | sort -u ; }; "${VISUAL:-${EDITOR:-vi}}" `f`"
117   add-unmerged = !"f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"
118
119   # Get the current branch name
120   branch-name = rev-parse --abbrev-ref HEAD
121
122         branches = branch --all
123         ca = commit --all
124         cv = commit --verbose
125         cav = commit --all --verbose
126         cane = commit --amend --no-edit
127         checkin = commit
128         ci = commit
129         cat = cat-file -p
130         dump = cat-file -p
131         file = cat-file -t
132         type = cat-file -t
133         l1 = log --decorate --oneline
134         l5 = log --decorate -5
135         ld = log --decorate
136         lg = log --decorate --graph
137         lg1 = log --decorate --graph --oneline
138         lg5 = log --decorate --graph -5
139         lr = log --decorate --reverse
140         lr1 = log --decorate --reverse --oneline
141         lr5 = log --decorate --reverse -5
142         null-merge = merge --strategy=ours
143         rbi123 = "!f() { exec git rebase --interactive $1 $2 ${3:-\"@{upstream\\}\"}; }; f"
144         rbi = !git rbi123 '' ''
145         rbia = !git rbi123 --autosquash ''
146         rbiap = !git rbi123 --autosquash --preserve-merges
147         rbip = !git rbi123 '' --preserve-merges
148         remotes = remote --verbose
149         #root = !pwd
150         root = rev-parse --show-toplevel
151         st = status --short
152         stb = status --short --branch
153         sd = show --decorate
154         sw = show --word-diff --decorate
155         unstage = reset HEAD --
156
157 [branch]
158         autosetuprebase = always
159
160 [color]
161         ui = auto
162
163 [include]
164         path = ~/lib/config/git/light_bg
165
166 [log]
167         abbrevCommit = true
168
169 [merge]
170         tool = vimdiff
171
172 #[mergetool "vimdiff3"]
173 # Don't forget to add -f for gvim
174 # 3 way diffs
175 #       cmd = vim -d \"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\" -c \"wincmd J\"
176
177 [push]
178         default = simple
179
180 [receive]
181         denyNonFastForwards = true
182
183 [web]
184         browser = webbrowser
185
186 [browser "webbrowser"]
187         cmd = webbrowser -n
188
189 [gui]
190         fontui = -family \"DejaVu Sans\" -size 18 -weight normal -slant roman -underline 0 -overstrike 0
191         fontdiff = -family \"DejaVu Sans Mono\" -size 18 -weight normal -slant roman -underline 0 -overstrike 0