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

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


SYNOPSIS
--------
'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.
	For a more complete list of ways to spell object names, see
	"SPECIFYING REVISIONS" section in linkgit:gitrevisions[1].

include::pretty-options.txt[]


include::pretty-formats.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 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[]

Author
------
Written by Linus Torvalds <torvalds@osdl.org> and
Junio C Hamano <gitster@pobox.com>.  Significantly enhanced by
Johannes Schindelin <Johannes.Schindelin@gmx.de>.


Documentation
-------------
Documentation by David Greaves, Petr Baudis and the git-list <git@vger.kernel.org>.

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