]> git.wincent.com - wincent.git/blob - roles/dotfiles/templates/.gitconfig
feat(fig): add variable.path and variable.paths helpers
[wincent.git] / roles / dotfiles / templates / .gitconfig
1 # {{ ansible_managed }}
2
3 [alias]
4         abbrev = !sh -c 'git rev-parse --short ${1-`echo HEAD`}' -
5         ack = grep --break --heading
6         amend = commit --amend -v
7         both = diff --ignore-submodules=dirty HEAD
8         br = branch
9         ci = commit -v
10         co = checkout
11         count = !sh -c 'git log --oneline | wc -l'
12         cp = cherry-pick
13
14         # http://stackoverflow.com/questions/224687/git-find-duplicate-blobs-files-in-this-tree/8408640#8408640
15         dupes = !"git ls-tree -r HEAD | cut -c 13- | sort | uniq -D -w 40"
16
17         ff = merge --ff-only
18         fixup = !sh -c 'git commit --fixup=$1 ${@:2}' -
19         fresh = remote update --prune
20         full = show --format=fuller
21
22         # Shortcut for updating all remotes and fast-forwarding to a specific one:
23         # eg. `git get upstream/master`
24         get = "!f() { git fresh && git ff \"$@\"; }; f"
25
26         # equivalent to: graph --all
27         gr = log --graph --all --pretty=format:'%C(auto)%h%Creset%C(auto)%d%Creset %s %C(magenta bold)(%cr)%Creset %C(cyan)<%aN>%Creset'
28
29         # requires Git 1.6.3 or later; %C(auto) requires Git 1.8.3 or later
30         graph = log --graph --pretty=format:'%C(auto)%h%Creset%C(auto)%d%Creset %s %C(magenta bold)(%cr)%Creset %C(cyan)<%aN>%Creset'
31
32         # Show just the HEAD commit message (no indent) and nothing else
33         message = log -1 --pretty=format:%B
34         msg = message
35
36         no-edit = commit --amend --no-edit
37
38         # %C(auto) requires Git 1.8.3 or later
39         one = log --pretty=format:'%C(auto)%h%Creset %s%C(auto)%d%Creset %C(magenta bold)(%cr)%Creset %C(cyan)<%aN>%Creset'
40         oneline = log --pretty=format:'%C(auto)%h%Creset %s%C(auto)%d%Creset %C(magenta bold)(%cr)%Creset %C(cyan)<%aN>%Creset'
41
42         # requires Git 1.5.4 or later
43         p = add -p
44         patch = add -p
45
46         # requires Git 1.7.11.3 or later
47         reword = commit --amend --only -v --
48
49         # requires Git 1.6.2 or later
50         rollback = !sh -c 'git reset --merge HEAD~${1-1}' -
51
52         # "smartlog", although it's not that smart.
53         # Equivalent to `git graph --all --simplify-by-decoration.
54         sl = log --graph --pretty=format:'%C(auto)%h%Creset%C(auto)%d%Creset %s %C(magenta bold)(%cr)%Creset %C(cyan)<%aN>%Creset' --all --simplify-by-decoration
55
56         st = status
57         staged = diff --cached --ignore-submodules=dirty
58
59         # %C(auto) requires Git 1.8.3 or later
60         ten = log -10 --pretty=format:'%C(auto)%h%Creset%C(auto)%d%Creset %s %C(magenta bold)(%cr)%Creset %C(cyan)<%aN>%Creset'
61
62         # compensate for brain damage caused by using Mercurial
63         up = checkout
64
65         wc = whatchanged
66
67         # similar to whatchanged, but gives a dir-level overview (takes param to
68         # diff against; defaults to HEAD if not provided)
69         wd = diff --dirstat=cumulative,files,0
70
71 [branch]
72         autosetupmerge = always
73         autosetuprebase = local
74
75 [branch "master"]
76         rebase = true
77
78 [color]
79         ui = auto
80
81 [color "diff-highlight"]
82         newhighlight = reverse
83         newreset = noreverse
84         oldhighlight = reverse
85         oldreset = noreverse
86
87 [color "interactive"]
88         prompt = blue reverse
89
90 [color "status"]
91         untracked = blue
92
93 [core]
94         excludesfile = ~/.gitignore
95         pager = sh -c "~/.zsh/bin/diff-highlight | less -iFMRSX" -
96         attributesfile = ~/.gitattributes
97
98 # ignored by Git older than 1.8.2
99 [diff]
100         algorithm = histogram
101
102         # Added in Git 2.9.0 (experimental): more readable diffs.
103         compactionHeuristic = true
104
105 [difftool]
106         prompt = false
107 {% if github_username != '' %}
108
109 [github]
110         username = {{ github_username }}
111 {% endif %}
112
113 [grep]
114         lineNumber = true
115
116         # requires Git built with PCRE support; ie:
117         #   brew install git --with-pcre (on OS X)
118         patternType = perl
119
120 [help]
121         autocorrect = 2
122
123 [interactive]
124         diffFilter = diff-highlight
125
126 [log]
127         decorate = short
128
129 [merge]
130         conflictStyle = diff3
131         log = 1000
132
133 [pager]
134         show-branch = true
135         status = true
136
137 [protocol]
138         # Added in Git 2.18.0.
139         version = 2
140
141 [push]
142         # Added in Git 1.7.11, default in 2.0, but still required (to avoid warning).
143         default = simple
144
145 [rebase]
146         autosquash = true
147
148 [rerere]
149         enabled = true
150
151 [sendemail]
152         smtpEncryption = tls
153         smtpServer = smtp.gmail.com
154         smtpServerPort = 587
155 {% if git_user_email != '' %}
156         smtpUser = {{ git_user_email }}
157 {% endif %}
158
159 [status]
160         submodulesummary = true
161
162 [submodule]
163         # Added in Git 2.9.0.
164         fetchJobs = 4
165
166 [user]
167 {% if git_user_email != '' %}
168         email = {{ git_user_email }}
169 {% endif %}
170 {% if git_user_name != '' %}
171         name = {{ git_user_name }}
172 {% endif %}
173
174 # ignored by Git older than 1.7.10
175 [include]
176         path = .gitconfig.local