of files which are not meant to be tracked. See
gitlink:gitignore[5].
+core.pager::
+ The command that git will use to paginate output. Can be overridden
+ with the `GIT_PAGER` environment variable.
+
alias.*::
Command aliases for the gitlink:git[1] command wrapper - e.g.
after defining "alias.last = cat-file commit HEAD", the invocation
</p>\r
</dd>\r
<dt>\r
+core.pager\r
+</dt>\r
+<dd>\r
+<p>\r
+ The command that git will use to paginate output. Can be overridden\r
+ with the <tt>GIT_PAGER</tt> environment variable.\r
+</p>\r
+</dd>\r
+<dt>\r
alias.*\r
</dt>\r
<dd>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 03-Jul-2007 07:03:40 UTC\r
+Last updated 05-Jul-2007 05:51:15 UTC\r
</div>\r
</div>\r
</body>\r
branch as your current branch. Nevertheless, this may be useful in\r
the future for compensating for some git bugs or such, therefore\r
such a usage is permitted.</p>\r
-<p>WARNING! The rewritten history will have different object names for all\r
+<p><strong>WARNING</strong>! The rewritten history will have different object names for all\r
the objects and will not converge with the original branch. You will not\r
be able to easily push and distribute the rewritten branch on top of the\r
original branch. Please do not use this command if you do not know the\r
Prior to that, the $GIT_COMMIT environment variable will be set to contain\r
the id of the commit being rewritten. Also, GIT_AUTHOR_NAME,\r
GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL,\r
-and GIT_COMMITTER_DATE is set according to the current commit.</p>\r
+and GIT_COMMITTER_DATE are set according to the current commit.</p>\r
<p>A <em>map</em> function is available that takes an "original sha1 id" argument\r
and outputs a "rewritten sha1 id" if the commit has been already\r
-rewritten, fails otherwise; the <em>map</em> function can return several\r
-ids on separate lines if your commit filter emitted multiple commits.</p>\r
+rewritten, and "original sha1 id" otherwise; the <em>map</em> function can\r
+return several ids on separate lines if your commit filter emitted\r
+multiple commits.</p>\r
</div>\r
<h2>OPTIONS</h2>\r
<div class="sectionbody">\r
directory set to the root of the checked out tree. The new tree\r
is then used as-is (new files are auto-added, disappeared files\r
are auto-removed - neither .gitignore files nor any other ignore\r
- rules HAVE ANY EFFECT!).\r
+ rules <strong>HAVE ANY EFFECT</strong>!).\r
</p>\r
</dd>\r
<dt>\r
</dt>\r
<dd>\r
<p>\r
- Only ever look at the history, which touches the given subdirectory.\r
- The result will contain that directory as its project root.\r
+ Only look at the history which touches the given subdirectory.\r
+ The result will contain that directory (and only that) as its\r
+ project root.\r
</p>\r
</dd>\r
<dt>\r
</div></div>\r
<p>Now, you will get the rewritten history saved in the branch <em>newbranch</em>\r
(your current branch is left untouched).</p>\r
-<p>To "etch-graft" a commit to the revision history (set a commit to be\r
-the parent of the current initial commit and propagate that):</p>\r
+<p>To set a commit (which typically is at the tip of another\r
+history) to be the parent of the current initial commit, in\r
+order to paste the other history behind the current history:</p>\r
<div class="listingblock">\r
<div class="content">\r
-<pre><tt>git filter-branch --parent-filter sed\ 's/^$/-p <graft-id>/' newbranch</tt></pre>\r
+<pre><tt>git filter-branch --parent-filter 'sed "s/^\$/-p <graft-id>/"' newbranch</tt></pre>\r
</div></div>\r
<p>(if the parent string is empty - therefore we are dealing with the\r
initial commit - add graftcommit as a parent). Note that this assumes\r
<pre><tt>git filter-branch --parent-filter \\r
'cat; test $GIT_COMMIT = <commit-id> && echo "-p <graft-id>"' newbranch</tt></pre>\r
</div></div>\r
+<p>or even simpler:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>echo "$commit-id $graft-id" >> .git/info/grafts\r
+git filter-branch newbranch $graft-id..</tt></pre>\r
+</div></div>\r
<p>To remove commits authored by "Darl McBribe" from the history:</p>\r
<div class="listingblock">\r
<div class="content">\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 04-Jul-2007 06:40:54 UTC\r
+Last updated 05-Jul-2007 05:51:15 UTC\r
</div>\r
</div>\r
</body>\r
the future for compensating for some git bugs or such, therefore
such a usage is permitted.
-WARNING! The rewritten history will have different object names for all
+*WARNING*! The rewritten history will have different object names for all
the objects and will not converge with the original branch. You will not
be able to easily push and distribute the rewritten branch on top of the
original branch. Please do not use this command if you do not know the
Prior to that, the $GIT_COMMIT environment variable will be set to contain
the id of the commit being rewritten. Also, GIT_AUTHOR_NAME,
GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL,
-and GIT_COMMITTER_DATE is set according to the current commit.
+and GIT_COMMITTER_DATE are set according to the current commit.
A 'map' function is available that takes an "original sha1 id" argument
and outputs a "rewritten sha1 id" if the commit has been already
-rewritten, fails otherwise; the 'map' function can return several
-ids on separate lines if your commit filter emitted multiple commits.
+rewritten, and "original sha1 id" otherwise; the 'map' function can
+return several ids on separate lines if your commit filter emitted
+multiple commits.
OPTIONS
directory set to the root of the checked out tree. The new tree
is then used as-is (new files are auto-added, disappeared files
are auto-removed - neither .gitignore files nor any other ignore
- rules HAVE ANY EFFECT!).
+ rules *HAVE ANY EFFECT*!).
--index-filter <command>::
This is the filter for rewriting the index. It is similar to the
definition impossible to preserve signatures at any rate.)
--subdirectory-filter <directory>::
- Only ever look at the history, which touches the given subdirectory.
- The result will contain that directory as its project root.
+ Only look at the history which touches the given subdirectory.
+ The result will contain that directory (and only that) as its
+ project root.
-d <directory>::
Use this option to set the path to the temporary directory used for
Now, you will get the rewritten history saved in the branch 'newbranch'
(your current branch is left untouched).
-To "etch-graft" a commit to the revision history (set a commit to be
-the parent of the current initial commit and propagate that):
+To set a commit (which typically is at the tip of another
+history) to be the parent of the current initial commit, in
+order to paste the other history behind the current history:
-----------------------------------------------------------------------
-git filter-branch --parent-filter sed\ 's/^$/-p <graft-id>/' newbranch
-----------------------------------------------------------------------
+------------------------------------------------------------------------
+git filter-branch --parent-filter 'sed "s/^\$/-p <graft-id>/"' newbranch
+------------------------------------------------------------------------
(if the parent string is empty - therefore we are dealing with the
initial commit - add graftcommit as a parent). Note that this assumes
'cat; test $GIT_COMMIT = <commit-id> && echo "-p <graft-id>"' newbranch
-------------------------------------------------------------------------------
+or even simpler:
+
+-----------------------------------------------
+echo "$commit-id $graft-id" >> .git/info/grafts
+git filter-branch newbranch $graft-id..
+-----------------------------------------------
+
To remove commits authored by "Darl McBribe" from the history:
------------------------------------------------------------------------------
<div class="content">\r
<pre><tt> .----W\r
/ /\r
-...--H----I</tt></pre>\r
+-----H----I</tt></pre>\r
</div></div>\r
<p>where <tt>H</tt> is the <tt>HEAD</tt> commit, <tt>I</tt> is a commit that records the state\r
of the index, and <tt>W</tt> is a commit that records the state of the working\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 03-Jul-2007 07:03:46 UTC\r
+Last updated 05-Jul-2007 05:51:16 UTC\r
</div>\r
</div>\r
</body>\r
.----W
/ /
- ...--H----I
+ -----H----I
where `H` is the `HEAD` commit, `I` is a commit that records the state
of the index, and `W` is a commit that records the state of the working