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[]


COMMON DIFF OPTIONS
-------------------

:git-log: 1
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
