blob: 235506d641ed0a8d246a2dce89ff575cd6aaf668 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 7.0.2" />
<style type="text/css">
/* Debug borders */
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
/*
border: 1px solid red;
*/
}
body {
margin: 1em 5% 1em 5%;
}
a { color: blue; }
a:visited { color: fuchsia; }
em {
font-style: italic;
}
strong {
font-weight: bold;
}
tt {
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1 {
border-bottom: 2px solid silver;
}
h2 {
border-bottom: 2px solid silver;
padding-top: 0.5em;
}
div.sectionbody {
font-family: serif;
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
pre {
padding: 0;
margin: 0;
}
span#author {
color: #527bbd;
font-family: sans-serif;
font-weight: bold;
font-size: 1.2em;
}
span#email {
}
span#revision {
font-family: sans-serif;
}
div#footer {
font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
div#footer-text {
float: left;
padding-bottom: 0.5em;
}
div#footer-badges {
float: right;
padding-bottom: 0.5em;
}
div#preamble,
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-right: 10%;
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.5em;
margin-bottom: 2.5em;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid silver;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid silver;
background: #f4f4f4;
padding: 0.5em;
}
div.quoteblock > div.content {
padding-left: 2.0em;
}
div.quoteblock .attribution {
text-align: right;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 2px solid silver;
}
div.exampleblock > div.content {
border-left: 2px solid silver;
padding: 0.5em;
}
div.verseblock div.content {
white-space: pre;
}
div.imageblock div.content { padding-left: 0; }
div.imageblock img { border: 1px solid silver; }
span.image img { border-style: none; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: italic;
}
dd > *:first-child {
margin-top: 0;
}
ul, ol {
list-style-position: outside;
}
ol.olist2 {
list-style-type: lower-alpha;
}
div.tableblock > table {
border-color: #527bbd;
border-width: 3px;
}
thead {
font-family: sans-serif;
font-weight: bold;
}
tfoot {
font-weight: bold;
}
div.hlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
td.hlist1 {
vertical-align: top;
font-style: italic;
padding-right: 0.8em;
}
td.hlist2 {
vertical-align: top;
}
@media print {
div#footer-badges { display: none; }
}
include::./stylesheets/xhtml11-manpage.css[]
/* Workarounds for IE6's broken and incomplete CSS2. */
div.sidebar-content {
background: #ffffee;
border: 1px solid silver;
padding: 0.5em;
}
div.sidebar-title, div.image-title {
font-family: sans-serif;
font-weight: bold;
margin-top: 0.0em;
margin-bottom: 0.5em;
}
div.listingblock div.content {
border: 1px solid silver;
background: #f4f4f4;
padding: 0.5em;
}
div.quoteblock-content {
padding-left: 2.0em;
}
div.exampleblock-content {
border-left: 2px solid silver;
padding-left: 0.5em;
}
</style>
<title>git-blame(1)</title>
</head>
<body>
<div id="header">
<h1>
git-blame(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>git-blame -
Show what revision and author last modified each line of a file
</p>
</div>
</div>
<h2>SYNOPSIS</h2>
<div class="sectionbody">
<p><em>git-blame</em> [-c] [-l] [-t] [-f] [-n] [-p] [-S &lt;revs-file&gt;] [--] &lt;file&gt; [&lt;rev&gt;]</p>
</div>
<h2>DESCRIPTION</h2>
<div class="sectionbody">
<p>Annotates each line in the given file with information from the revision which
last modified the line. Optionally, start annotating from the given revision.</p>
<p>This report doesn't tell you anything about lines which have been deleted or
replaced; you need to use a tool such as <a href="git-diff.html">git-diff(1)</a> or the "pickaxe"
interface briefly mentioned in the following paragraph.</p>
<p>Apart from supporting file annotation, git also supports searching the
development history for when a code snippet occured in a change. This makes it
possible to track when a code snippet was added to a file, moved or copied
between files, and eventually deleted or replaced. It works by searching for
a text string in the diff. A small example:</p>
<div class="listingblock">
<div class="content">
<pre><tt>$ git log --pretty=oneline -S'blame_usage'
5040f17eba15504bad66b14a645bddd9b015ebb7 blame -S &lt;ancestry-file&gt;
ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output</tt></pre>
</div></div>
</div>
<h2>OPTIONS</h2>
<div class="sectionbody">
<dl>
<dt>
-c, --compatibility
</dt>
<dd>
<p>
Use the same output mode as <a href="git-annotate.html">git-annotate(1)</a> (Default: off).
</p>
</dd>
<dt>
-l, --long
</dt>
<dd>
<p>
Show long rev (Default: off).
</p>
</dd>
<dt>
-t, --time
</dt>
<dd>
<p>
Show raw timestamp (Default: off).
</p>
</dd>
<dt>
-S, --rev-file &lt;revs-file&gt;
</dt>
<dd>
<p>
Use revs from revs-file instead of calling <a href="git-rev-list.html">git-rev-list(1)</a>.
</p>
</dd>
<dt>
-f, --show-name
</dt>
<dd>
<p>
Show filename in the original commit. By default
filename is shown if there is any line that came from a
file with different name, due to rename detection.
</p>
</dd>
<dt>
-n, --show-number
</dt>
<dd>
<p>
Show line number in the original commit (Default: off).
</p>
</dd>
<dt>
-p, --porcelain
</dt>
<dd>
<p>
Show in a format designed for machine consumption.
</p>
</dd>
<dt>
-h, --help
</dt>
<dd>
<p>
Show help message.
</p>
</dd>
</dl>
</div>
<h2>THE PORCELAIN FORMAT</h2>
<div class="sectionbody">
<p>In this format, each line is output after a header; the
header at the minumum has the first line which has:</p>
<ul>
<li>
<p>
40-byte SHA-1 of the commit the line is attributed to;
</p>
</li>
<li>
<p>
the line number of the line in the original file;
</p>
</li>
<li>
<p>
the line number of the line in the final file;
</p>
</li>
<li>
<p>
on a line that starts a group of line from a different
commit than the previous one, the number of lines in this
group. On subsequent lines this field is absent.
</p>
</li>
</ul>
<p>This header line is followed by the following information
at least once for each commit:</p>
<ul>
<li>
<p>
author name ("author"), email ("author-mail"), time
("author-time"), and timezone ("author-tz"); similarly
for committer.
</p>
</li>
<li>
<p>
filename in the commit the line is attributed to.
</p>
</li>
<li>
<p>
the first line of the commit log message ("summary").
</p>
</li>
</ul>
<p>The contents of the actual line is output after the above
header, prefixed by a TAB. This is to allow adding more
header elements later.</p>
</div>
<h2>SEE ALSO</h2>
<div class="sectionbody">
<p><a href="git-annotate.html">git-annotate(1)</a></p>
</div>
<h2>AUTHOR</h2>
<div class="sectionbody">
<p>Written by Fredrik Kuivinen &lt;freku045@student.liu.se&gt;.</p>
</div>
<h2>GIT</h2>
<div class="sectionbody">
<p>Part of the <a href="git.html">git(7)</a> suite</p>
</div>
<div id="footer">
<div id="footer-text">
Last updated 25-Oct-2006 22:55:21 UTC
</div>
</div>
</body>
</html>