]>
Commit | Line | Data |
---|---|---|
331b51d2 JN |
1 | PRETTY FORMATS |
2 | -------------- | |
3 | ||
4 | If the commit is a merge, and if the pretty-format | |
5 | is not 'oneline', 'email' or 'raw', an additional line is | |
6 | inserted before the 'Author:' line. This line begins with | |
7 | "Merge: " and the sha1s of ancestral commits are printed, | |
8 | separated by spaces. Note that the listed commits may not | |
9 | necessarily be the list of the *direct* parent commits if you | |
10 | have limited your view of history: for example, if you are | |
11 | only interested in changes related to a certain directory or | |
12 | file. | |
13 | ||
14 | Here are some additional details for each format: | |
15 | ||
16 | * 'oneline' | |
5d1faf87 CR |
17 | |
18 | <sha1> <title line> | |
19 | + | |
20 | This is designed to be as compact as possible. | |
21 | ||
331b51d2 | 22 | * 'short' |
5d1faf87 CR |
23 | |
24 | commit <sha1> | |
25 | Author: <author> | |
26 | ||
27 | <title line> | |
28 | ||
331b51d2 | 29 | * 'medium' |
5d1faf87 CR |
30 | |
31 | commit <sha1> | |
32 | Author: <author> | |
ec9f0ea3 | 33 | Date: <author date> |
5d1faf87 CR |
34 | |
35 | <title line> | |
36 | ||
37 | <full commit message> | |
38 | ||
331b51d2 | 39 | * 'full' |
5d1faf87 CR |
40 | |
41 | commit <sha1> | |
42 | Author: <author> | |
43 | Commit: <committer> | |
44 | ||
45 | <title line> | |
46 | ||
47 | <full commit message> | |
48 | ||
331b51d2 | 49 | * 'fuller' |
5d1faf87 CR |
50 | |
51 | commit <sha1> | |
ec9f0ea3 | 52 | Author: <author> |
2b2da684 | 53 | AuthorDate: <author date> |
ec9f0ea3 | 54 | Commit: <committer> |
2b2da684 | 55 | CommitDate: <committer date> |
5d1faf87 CR |
56 | |
57 | <title line> | |
58 | ||
59 | <full commit message> | |
60 | ||
331b51d2 | 61 | * 'email' |
5d1faf87 CR |
62 | |
63 | From <sha1> <date> | |
64 | From: <author> | |
2b2da684 | 65 | Date: <author date> |
5d1faf87 CR |
66 | Subject: [PATCH] <title line> |
67 | ||
331b51d2 | 68 | <full commit message> |
5d1faf87 | 69 | |
331b51d2 | 70 | * 'raw' |
5d1faf87 CR |
71 | + |
72 | The 'raw' format shows the entire commit exactly as | |
73 | stored in the commit object. Notably, the SHA1s are | |
74 | displayed in full, regardless of whether --abbrev or | |
75 | --no-abbrev are used, and 'parents' information show the | |
76 | true parent commits, without taking grafts nor history | |
77 | simplification into account. | |
7cbcf4d5 | 78 | |
331b51d2 | 79 | * 'format:' |
e52a5de4 JS |
80 | + |
81 | The 'format:' format allows you to specify which information | |
82 | you want to show. It works a little bit like printf format, | |
83 | with the notable exception that you get a newline with '%n' | |
84 | instead of '\n'. | |
331b51d2 JN |
85 | + |
86 | E.g, 'format:"The author of %h was %an, %ar%nThe title was >>%s<<%n"' | |
e52a5de4 | 87 | would show something like this: |
331b51d2 JN |
88 | + |
89 | ------- | |
e52a5de4 JS |
90 | The author of fe6e0ee was Junio C Hamano, 23 hours ago |
91 | The title was >>t4119: test autocomputing -p<n> for traditional diff input.<< | |
92 | ||
331b51d2 JN |
93 | -------- |
94 | + | |
e52a5de4 JS |
95 | The placeholders are: |
96 | ||
97 | - '%H': commit hash | |
98 | - '%h': abbreviated commit hash | |
99 | - '%T': tree hash | |
100 | - '%t': abbreviated tree hash | |
101 | - '%P': parent hashes | |
102 | - '%p': abbreviated parent hashes | |
103 | - '%an': author name | |
7d48e9e6 | 104 | - '%aN': author name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) |
e52a5de4 | 105 | - '%ae': author email |
7d48e9e6 | 106 | - '%aE': author email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) |
d36f8679 | 107 | - '%ad': author date (format respects --date= option) |
e52a5de4 JS |
108 | - '%aD': author date, RFC2822 style |
109 | - '%ar': author date, relative | |
110 | - '%at': author date, UNIX timestamp | |
ee8f838e | 111 | - '%ai': author date, ISO 8601 format |
e52a5de4 | 112 | - '%cn': committer name |
7d48e9e6 | 113 | - '%cN': committer name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) |
e52a5de4 | 114 | - '%ce': committer email |
7d48e9e6 | 115 | - '%cE': committer email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) |
e52a5de4 JS |
116 | - '%cd': committer date |
117 | - '%cD': committer date, RFC2822 style | |
118 | - '%cr': committer date, relative | |
119 | - '%ct': committer date, UNIX timestamp | |
ee8f838e | 120 | - '%ci': committer date, ISO 8601 format |
3b3d443f | 121 | - '%d': ref names, like the --decorate option of linkgit:git-log[1] |
e52a5de4 JS |
122 | - '%e': encoding |
123 | - '%s': subject | |
46d164b0 | 124 | - '%f': sanitized subject line, suitable for a filename |
e52a5de4 JS |
125 | - '%b': body |
126 | - '%Cred': switch color to red | |
127 | - '%Cgreen': switch color to green | |
128 | - '%Cblue': switch color to blue | |
129 | - '%Creset': reset color | |
c002922a | 130 | - '%C(...)': color specification, as described in color.branch.* config option |
199c45bf | 131 | - '%m': left, right or boundary mark |
e52a5de4 | 132 | - '%n': newline |
42c8c74c | 133 | - '%x00': print a byte from a hex code |
fa5b4f37 JK |
134 | |
135 | * 'tformat:' | |
136 | + | |
137 | The 'tformat:' format works exactly like 'format:', except that it | |
138 | provides "terminator" semantics instead of "separator" semantics. In | |
139 | other words, each commit has the message terminator character (usually a | |
140 | newline) appended, rather than a separator placed between entries. | |
141 | This means that the final entry of a single-line format will be properly | |
142 | terminated with a new line, just as the "oneline" format does. | |
143 | For example: | |
144 | + | |
145 | --------------------- | |
146 | $ git log -2 --pretty=format:%h 4da45bef \ | |
147 | | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/' | |
148 | 4da45be | |
149 | 7134973 -- NO NEWLINE | |
150 | ||
151 | $ git log -2 --pretty=tformat:%h 4da45bef \ | |
152 | | perl -pe '$_ .= " -- NO NEWLINE\n" unless /\n/' | |
153 | 4da45be | |
154 | 7134973 | |
155 | --------------------- | |
36407548 NS |
156 | + |
157 | In addition, any unrecognized string that has a `%` in it is interpreted | |
158 | as if it has `tformat:` in front of it. For example, these two are | |
159 | equivalent: | |
160 | + | |
161 | --------------------- | |
162 | $ git log -2 --pretty=tformat:%h 4da45bef | |
163 | $ git log -2 --pretty=%h 4da45bef | |
164 | --------------------- |