GIT-SHOW(1) Git Manual GIT-SHOW(1) NAME git-show - Show various types of objects SYNOPSIS git show [] [...] DESCRIPTION Shows one or more objects (blobs, trees, tags and commits). For commits it shows the log message and textual diff. It also presents the merge commit in a special format as produced by git diff-tree --cc. For tags, it shows the tag message and the referenced objects. For trees, it shows the names (equivalent to git ls-tree with --name-only). For plain blobs, it shows the plain contents. Some options that git log command understands can be used to control how the changes the commit introduces are shown. This manual page describes only the most frequently used options. OPTIONS ... The names of objects to show (defaults to HEAD). For a more complete list of ways to spell object names, see "SPECIFYING REVISIONS" section in gitrevisions(7). --pretty[=], --format= Pretty-print the contents of the commit logs in a given format, where can be one of oneline, short, medium, full, fuller, reference, email, raw, format: and tformat:. When is none of the above, and has % in it, it acts as if --pretty=tformat: were given. See the "PRETTY FORMATS" section for some additional details for each format. When = part is omitted, it defaults to medium. Note you can specify the default pretty format in the repository configuration (see git-config(1)). --abbrev-commit Instead of showing the full 40-byte hexadecimal commit object name, show a prefix that names the object uniquely. --abbrev= (which also modifies diff output, if it is displayed) option can be used to specify the minimum length of the prefix. This should make --pretty=oneline a whole lot more readable for people using 80-column terminals. --no-abbrev-commit Show the full 40-byte hexadecimal commit object name. This negates --abbrev-commit, either explicit or implied by other options such as --oneline. It also overrides the log.abbrevCommit variable. --oneline This is a shorthand for --pretty=oneline --abbrev-commit used together. --encoding= Commit objects record the character encoding used for the log message in their encoding header; this option can be used to tell the command to re-code the commit log message in the encoding preferred by the user. For non plumbing commands this defaults to UTF-8. Note that if an object claims to be encoded in X and we are outputting in X, we will output the object verbatim; this means that invalid sequences in the original commit may be copied to the output. Likewise, if iconv(3) fails to convert the commit, we will quietly output the original object verbatim. --expand-tabs=, --expand-tabs, --no-expand-tabs Perform a tab expansion (replace each tab with enough spaces to fill to the next display column that is a multiple of ) in the log message before showing it in the output. --expand-tabs is a short-hand for --expand-tabs=8, and --no-expand-tabs is a short-hand for --expand-tabs=0, which disables tab expansion. By default, tabs are expanded in pretty formats that indent the log message by 4 spaces (i.e. medium, which is the default, full, and fuller). --notes[=] Show the notes (see git-notes(1)) that annotate the commit, when showing the commit log message. This is the default for git log, git show and git whatchanged commands when there is no --pretty, --format, or --oneline option given on the command line. By default, the notes shown are from the notes refs listed in the core.notesRef and notes.displayRef variables (or corresponding environment overrides). See git-config(1) for more details. With an optional argument, use the ref to find the notes to display. The ref can specify the full refname when it begins with refs/notes/; when it begins with notes/, refs/ and otherwise refs/notes/ is prefixed to form the full name of the ref. Multiple --notes options can be combined to control which notes are being displayed. Examples: "--notes=foo" will show only notes from refs/notes/foo; "--notes=foo --notes" will show both notes from "refs/notes/foo" and from the default notes ref(s). --no-notes Do not show notes. This negates the above --notes option, by resetting the list of notes refs from which notes are shown. Options are parsed in the order given on the command line, so e.g. "--notes --notes=foo --no-notes --notes=bar" will only show notes from refs/notes/bar. --show-notes-by-default Show the default notes unless options for displaying specific notes are given. --show-notes[=], --standard-notes, --no-standard-notes These options are deprecated. Use the above --notes/--no-notes options instead. --show-signature Check the validity of a signed commit object by passing the signature to gpg --verify and show the output. PRETTY FORMATS If the commit is a merge, and if the pretty-format is not oneline, email or raw, an additional line is inserted before the Author: line. This line begins with "Merge: " and the hashes of ancestral commits are printed, separated by spaces. Note that the listed commits may not necessarily be the list of the direct parent commits if you have limited your view of history: for example, if you are only interested in changes related to a certain directory or file. There are several built-in formats, and you can define additional formats by setting a pretty. config option to either another format name, or a format: string, as described below (see git- config(1)). Here are the details of the built-in formats: o oneline This is designed to be as compact as possible. o short commit Author: o medium commit Author: Date: o full commit Author: Commit: o fuller commit Author: AuthorDate: Commit: CommitDate: o reference (, ) This format is used to refer to another commit in a commit message and is the same as --pretty='format:%C(auto)%h (%s, %ad)'. By default, the date is formatted with --date=short unless another --date option is explicitly specified. As with any format: with format placeholders, its output is not affected by other options like --decorate and --walk-reflogs. o email From From: Date: Subject: [PATCH] o mboxrd Like email, but lines in the commit message starting with "From " (preceded by zero or more ">") are quoted with ">" so they aren't confused as starting a new commit. o raw The raw format shows the entire commit exactly as stored in the commit object. Notably, the hashes are displayed in full, regardless of whether --abbrev or --no-abbrev are used, and parents information show the true parent commits, without taking grafts or history simplification into account. Note that this format affects the way commits are displayed, but not the way the diff is shown e.g. with git log --raw. To get full object names in a raw diff format, use --no-abbrev. o format: The format: format allows you to specify which information you want to show. It works a little bit like printf format, with the notable exception that you get a newline with %n instead of \n. E.g, format:"The author of %h was %an, %ar%nThe title was >>%s<<%n" would show something like this: The author of fe6e0ee was Junio C Hamano, 23 hours ago The title was >>t4119: test autocomputing -p for traditional diff input.<< The placeholders are: o Placeholders that expand to a single literal character: %n newline %% a raw % %x00 %x followed by two hexadecimal digits is replaced with a byte with the hexadecimal digits' value (we will call this "literal formatting code" in the rest of this document). o Placeholders that affect formatting of later placeholders: %Cred switch color to red %Cgreen switch color to green %Cblue switch color to blue %Creset reset color %C() color specification, as described under Values in the "CONFIGURATION FILE" section of git-config(1). By default, colors are shown only when enabled for log output (by color.diff, color.ui, or --color, and respecting the auto settings of the former if we are going to a terminal). %C(auto,) is accepted as a historical synonym for the default (e.g., %C(auto,red)). Specifying %C(always,) will show the colors even when color is not otherwise enabled (though consider just using --color=always to enable color for the whole output, including this format and anything else git might color). auto alone (i.e. %C(auto)) will turn on auto coloring on the next placeholders until the color is switched again. %m left (<), right (>) or boundary (-) mark %w([[,[,]]]) switch line wrapping, like the -w option of git- shortlog(1). %<([,(trunc|ltrunc|mtrunc)]) make the next placeholder take at least N column widths, padding spaces on the right if necessary. Optionally truncate (with ellipsis ..) at the left (ltrunc) ..ft, the middle (mtrunc) mi..le, or the end (trunc) rig.., if the output is longer than columns. Note 1: that truncating only works correctly with >= 2. Note 2: spaces around the and (see below) values are optional. Note 3: Emojis and other wide characters will take two display columns, which may over-run column boundaries. Note 4: decomposed character combining marks may be misplaced at padding boundaries. %<|( ) make the next placeholder take at least until th display column, padding spaces on the right if necessary. Use negative values for column positions measured from the right hand edge of the terminal window. %>(), %>|() similar to %<(), %<|() respectively, but padding spaces on the left %>>(), %>>|() similar to %>(), %>|() respectively, except that if the next placeholder takes more spaces than given and there are spaces on its left, use those spaces %><(), %><|() similar to %<(), %<|() respectively, but padding both sides (i.e. the text is centered) o Placeholders that expand to information extracted from the commit: %H commit hash %h abbreviated commit hash %T tree hash %t abbreviated tree hash %P parent hashes %p abbreviated parent hashes %an author name %aN author name (respecting .mailmap, see git-shortlog(1) or git-blame(1)) %ae author email %aE author email (respecting .mailmap, see git-shortlog(1) or git-blame(1)) %al author email local-part (the part before the @ sign) %aL author local-part (see %al) respecting .mailmap, see git- shortlog(1) or git-blame(1)) %ad author date (format respects --date= option) %aD author date, RFC2822 style %ar author date, relative %at author date, UNIX timestamp %ai author date, ISO 8601-like format %aI author date, strict ISO 8601 format %as author date, short format (YYYY-MM-DD) %ah author date, human style (like the --date=human option of git-rev-list(1)) %cn committer name %cN committer name (respecting .mailmap, see git-shortlog(1) or git-blame(1)) %ce committer email %cE committer email (respecting .mailmap, see git-shortlog(1) or git-blame(1)) %cl committer email local-part (the part before the @ sign) %cL committer local-part (see %cl) respecting .mailmap, see git-shortlog(1) or git-blame(1)) %cd committer date (format respects --date= option) %cD committer date, RFC2822 style %cr committer date, relative %ct committer date, UNIX timestamp %ci committer date, ISO 8601-like format %cI committer date, strict ISO 8601 format %cs committer date, short format (YYYY-MM-DD) %ch committer date, human style (like the --date=human option of git-rev-list(1)) %d ref names, like the --decorate option of git-log(1) %D ref names without the " (", ")" wrapping. %(decorate[: