git-show(1)
===========

NAME
----
git-show - Show various types of objects


SYNOPSIS
--------
[verse]
'git show' [<options>] [<object>...]

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.

The command takes options applicable to the 'git diff-tree' command to
control how the changes the commit introduces are shown.

This manual page describes only the most frequently used options.


OPTIONS
-------
<object>...::
	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 linkgit:gitrevisions[7].

include::pretty-options.txt[]


include::pretty-formats.txt[]


DIFF FORMATTING
---------------
The options below can be used to change the way `git show` generates
diff output.

:git-log: 1
:diff-merges-default: `dense-combined`
include::diff-options.txt[]

include::diff-generate-patch.txt[]


EXAMPLES
--------

`git show v1.0.0`::
	Shows the tag `v1.0.0`, along with the object the tags
	points at.

`git show v1.0.0^{tree}`::
	Shows the tree pointed to by the tag `v1.0.0`.

`git show -s --format=%s v1.0.0^{commit}`::
	Shows the subject of the commit pointed to by the
	tag `v1.0.0`.

`git show next~10:Documentation/README`::
	Shows the contents of the file `Documentation/README` as
	they were current in the 10th last commit of the branch
	`next`.

`git show master:Makefile master:t/Makefile`::
	Concatenates the contents of said Makefiles in the head
	of the branch `master`.

DISCUSSION
----------

include::i18n.txt[]

GIT
---
Part of the linkgit:git[1] suite
