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

For plain blobs, it shows the plain contents.

The command takes options applicable to the gitlink: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 gitlink:git-rev-parse[1].

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 gitlink:git[7] suite

