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 linkgit:git-ls-tree[1]
with \--name-only).

For plain blobs, it shows the plain contents.

The command takes options applicable to the linkgit:git-diff-tree[1] command to
control how the changes the commit introduces are shown.

This manual page describes only the most frequently used options.


OPTIONS
-------
<object>::
	The name of the object to show.
	For a more complete list of ways to spell object names, see
	"SPECIFYING REVISIONS" section in linkgit:git-rev-parse[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 <junkio@cox.net>.  Significantly enhanced by
Johannes Schindelin <Johannes.Schindelin@gmx.de>.


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

This manual page is a stub. You can help the git documentation by expanding it.

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