<!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 8.4.5" /> <title>git-fast-export(1)</title> <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; text-decoration: underline; } a:visited { color: fuchsia; } em { font-style: italic; color: navy; } strong { font-weight: bold; color: #083194; } 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, h2, h3 { border-bottom: 2px solid silver; } h2 { padding-top: 0.5em; } h3 { float: left; } h3 + * { clear: left; } div.sectionbody { font-family: serif; margin-left: 0; } hr { border: 1px solid silver; } p { margin-top: 0.5em; margin-bottom: 0.5em; } ul, ol, li > p { margin-top: 0; } pre { padding: 0; margin: 0; } span#author { color: #527bbd; font-family: sans-serif; font-weight: bold; font-size: 1.1em; } span#email { } span#revnumber, span#revdate, span#revremark { 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 { margin-top: 1.5em; margin-bottom: 1.5em; } div.tableblock, div.imageblock, div.exampleblock, div.verseblock, div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, div.admonitionblock { 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 { color: #527bbd; 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 { padding-left: 2.0em; margin-right: 10%; } div.quoteblock > div.attribution { padding-top: 0.5em; text-align: right; } div.verseblock { padding-left: 2.0em; margin-right: 10%; } div.verseblock > div.content { white-space: pre; } div.verseblock > div.attribution { padding-top: 0.75em; text-align: left; } /* DEPRECATED: Pre version 8.2.7 verse style literal block. */ div.verseblock + div.attribution { text-align: left; } 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.imageblock div.content { padding-left: 0; } span.image img { border-style: none; } a.image:visited { color: white; } dl { margin-top: 0.8em; margin-bottom: 0.8em; } dt { margin-top: 0.5em; margin-bottom: 0; font-style: normal; color: navy; } dd > *:first-child { margin-top: 0.1em; } ul, ol { list-style-position: outside; } ol.arabic { list-style-type: decimal; } ol.loweralpha { list-style-type: lower-alpha; } ol.upperalpha { list-style-type: upper-alpha; } ol.lowerroman { list-style-type: lower-roman; } ol.upperroman { list-style-type: upper-roman; } div.compact ul, div.compact ol, div.compact p, div.compact p, div.compact div, div.compact div { margin-top: 0.1em; margin-bottom: 0.1em; } div.tableblock > table { border: 3px solid #527bbd; } thead { font-family: sans-serif; font-weight: bold; } tfoot { font-weight: bold; } td > div.verse { white-space: pre; } p.table { margin-top: 0; } /* Because the table frame attribute is overriden by CSS in most browsers. */ div.tableblock > table[frame="void"] { border-style: none; } div.tableblock > table[frame="hsides"] { border-left-style: none; border-right-style: none; } div.tableblock > table[frame="vsides"] { border-top-style: none; border-bottom-style: none; } div.hdlist { margin-top: 0.8em; margin-bottom: 0.8em; } div.hdlist tr { padding-bottom: 15px; } dt.hdlist1.strong, td.hdlist1.strong { font-weight: bold; } td.hdlist1 { vertical-align: top; font-style: normal; padding-right: 0.8em; color: navy; } td.hdlist2 { vertical-align: top; } div.hdlist.compact tr { margin: 0; padding-bottom: 0; } .comment { background: yellow; } @media print { div#footer-badges { display: none; } } div#toctitle { color: #527bbd; font-family: sans-serif; font-size: 1.1em; font-weight: bold; margin-top: 1.0em; margin-bottom: 0.1em; } div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } div.toclevel2 { margin-left: 2em; font-size: 0.9em; } div.toclevel3 { margin-left: 4em; font-size: 0.9em; } div.toclevel4 { margin-left: 6em; font-size: 0.9em; } /* Overrides for manpage documents */ h1 { padding-top: 0.5em; padding-bottom: 0.5em; border-top: 2px solid silver; border-bottom: 2px solid silver; } h2 { border-style: none; } div.sectionbody { margin-left: 5%; } @media print { div#toc { display: none; } } /* 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 { color: #527bbd; 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-attribution { padding-top: 0.5em; text-align: right; } div.verseblock-content { white-space: pre; } div.verseblock-attribution { padding-top: 0.75em; text-align: left; } div.exampleblock-content { border-left: 2px solid silver; padding-left: 0.5em; } /* IE6 sets dynamically generated links as visited. */ div#toc a:visited { color: blue; } </style> </head> <body> <div id="header"> <h1> git-fast-export(1) Manual Page </h1> <h2>NAME</h2> <div class="sectionbody"> <p>git-fast-export - Git data exporter </p> </div> </div> <h2 id="_synopsis">SYNOPSIS</h2> <div class="sectionbody"> <div class="paragraph"><p><em>git fast-export [options]</em> | <em>git fast-import</em></p></div> </div> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>This program dumps the given revisions in a form suitable to be piped into <em>git fast-import</em>.</p></div> <div class="paragraph"><p>You can use it as a human-readable bundle replacement (see <a href="git-bundle.html">git-bundle(1)</a>), or as a kind of an interactive <em>git filter-branch</em>.</p></div> </div> <h2 id="_options">OPTIONS</h2> <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> --progress=<n> </dt> <dd> <p> Insert <em>progress</em> statements every <n> objects, to be shown by <em>git fast-import</em> during import. </p> </dd> <dt class="hdlist1"> --signed-tags=(verbatim|warn|strip|abort) </dt> <dd> <p> Specify how to handle signed tags. Since any transformation after the export can change the tag names (which can also happen when excluding revisions) the signatures will not match. </p> <div class="paragraph"><p>When asking to <em>abort</em> (which is the default), this program will die when encountering a signed tag. With <em>strip</em>, the tags will be made unsigned, with <em>verbatim</em>, they will be silently exported and with <em>warn</em>, they will be exported, but you will see a warning.</p></div> </dd> <dt class="hdlist1"> --tag-of-filtered-object=(abort|drop|rewrite) </dt> <dd> <p> Specify how to handle tags whose tagged object is filtered out. Since revisions and files to export can be limited by path, tagged objects may be filtered completely. </p> <div class="paragraph"><p>When asking to <em>abort</em> (which is the default), this program will die when encountering such a tag. With <em>drop</em> it will omit such tags from the output. With <em>rewrite</em>, if the tagged object is a commit, it will rewrite the tag to tag an ancestor commit (via parent rewriting; see <a href="git-rev-list.html">git-rev-list(1)</a>)</p></div> </dd> <dt class="hdlist1"> -M </dt> <dt class="hdlist1"> -C </dt> <dd> <p> Perform move and/or copy detection, as described in the <a href="git-diff.html">git-diff(1)</a> manual page, and use it to generate rename and copy commands in the output dump. </p> <div class="paragraph"><p>Note that earlier versions of this command did not complain and produced incorrect results if you gave these options.</p></div> </dd> <dt class="hdlist1"> --export-marks=<file> </dt> <dd> <p> Dumps the internal marks table to <file> when complete. Marks are written one per line as <tt>:markid SHA-1</tt>. Only marks for revisions are dumped; marks for blobs are ignored. Backends can use this file to validate imports after they have been completed, or to save the marks table across incremental runs. As <file> is only opened and truncated at completion, the same path can also be safely given to --import-marks. </p> </dd> <dt class="hdlist1"> --import-marks=<file> </dt> <dd> <p> Before processing any input, load the marks specified in <file>. The input file must exist, must be readable, and must use the same format as produced by --export-marks. </p> <div class="paragraph"><p>Any commits that have already been marked will not be exported again. If the backend uses a similar --import-marks file, this allows for incremental bidirectional exporting of the repository by keeping the marks the same across runs.</p></div> </dd> <dt class="hdlist1"> --fake-missing-tagger </dt> <dd> <p> Some old repositories have tags without a tagger. The fast-import protocol was pretty strict about that, and did not allow that. So fake a tagger to be able to fast-import the output. </p> </dd> <dt class="hdlist1"> --no-data </dt> <dd> <p> Skip output of blob objects and instead refer to blobs via their original SHA-1 hash. This is useful when rewriting the directory structure or history of a repository without touching the contents of individual files. Note that the resulting stream can only be used by a repository which already contains the necessary objects. </p> </dd> <dt class="hdlist1"> --full-tree </dt> <dd> <p> This option will cause fast-export to issue a "deleteall" directive for each commit followed by a full list of all files in the commit (as opposed to just listing the files which are different from the commit’s first parent). </p> </dd> <dt class="hdlist1"> [<git-rev-list-args>…] </dt> <dd> <p> A list of arguments, acceptable to <em>git rev-parse</em> and <em>git rev-list</em>, that specifies the specific objects and references to export. For example, <tt>master~10..master</tt> causes the current master reference to be exported along with all objects added since its 10th ancestor commit. </p> </dd> </dl></div> </div> <h2 id="_examples">EXAMPLES</h2> <div class="sectionbody"> <div class="listingblock"> <div class="content"> <pre><tt>$ git fast-export --all | (cd /empty/repository && git fast-import)</tt></pre> </div></div> <div class="paragraph"><p>This will export the whole repository and import it into the existing empty repository. Except for reencoding commits that are not in UTF-8, it would be a one-to-one mirror.</p></div> <div class="listingblock"> <div class="content"> <pre><tt>$ git fast-export master~5..master | sed "s|refs/heads/master|refs/heads/other|" | git fast-import</tt></pre> </div></div> <div class="paragraph"><p>This makes a new branch called <em>other</em> from <em>master~5..master</em> (i.e. if <em>master</em> has linear history, it will take the last 5 commits).</p></div> <div class="paragraph"><p>Note that this assumes that none of the blobs and commit messages referenced by that revision range contains the string <em>refs/heads/master</em>.</p></div> </div> <h2 id="_limitations">Limitations</h2> <div class="sectionbody"> <div class="paragraph"><p>Since <em>git fast-import</em> cannot tag trees, you will not be able to export the linux-2.6.git repository completely, as it contains a tag referencing a tree instead of a commit.</p></div> </div> <h2 id="_author">Author</h2> <div class="sectionbody"> <div class="paragraph"><p>Written by Johannes E. Schindelin <<a href="mailto:johannes.schindelin@gmx.de">johannes.schindelin@gmx.de</a>>.</p></div> </div> <h2 id="_documentation">Documentation</h2> <div class="sectionbody"> <div class="paragraph"><p>Documentation by Johannes E. Schindelin <<a href="mailto:johannes.schindelin@gmx.de">johannes.schindelin@gmx.de</a>>.</p></div> </div> <h2 id="_git">GIT</h2> <div class="sectionbody"> <div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div> </div> <div id="footer"> <div id="footer-text"> Last updated 2010-12-16 02:52:11 UTC </div> </div> </body> </html>