'\" t
.\" Title: git-fast-export
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets v1.75.2
.\" Date: 05/09/2012
.\" Manual: Git Manual
.\" Source: Git 1.6.1.1
.\" Language: English
.\"
.TH "GIT\-FAST\-EXPORT" "1" "05/09/2012" "Git 1\&.6\&.1\&.1" "Git Manual"
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-fast-export \- Git data exporter
.SH "SYNOPSIS"
\fIgit fast\-export [options]\fR | \fIgit fast\-import\fR
.SH "DESCRIPTION"
This program dumps the given revisions in a form suitable to be piped into \fIgit\-fast\-import\fR\&.
You can use it as a human\-readable bundle replacement (see \fBgit-bundle\fR(1)), or as a kind of an interactive \fIgit\-filter\-branch\fR\&.
.SH "OPTIONS"
.PP
\-\-progress=
.RS 4
Insert \fIprogress\fR statements every objects, to be shown by \fIgit\-fast\-import\fR during import\&.
.RE
.PP
\-\-signed\-tags=(verbatim|warn|strip|abort)
.RS 4
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\&.
When asking to \fIabort\fR (which is the default), this program will die when encountering a signed tag\&. With \fIstrip\fR, the tags will be made unsigned, with \fIverbatim\fR, they will be silently exported and with \fIwarn\fR, they will be exported, but you will see a warning\&.
.RE
.PP
\-M, \-C
.RS 4
Perform move and/or copy detection, as described in the \fBgit-diff\fR(1) manual page, and use it to generate rename and copy commands in the output dump\&.
Note that earlier versions of this command did not complain and produced incorrect results if you gave these options\&.
.RE
.PP
\-\-export\-marks=
.RS 4
Dumps the internal marks table to when complete\&. Marks are written one per line as :markid SHA\-1\&. 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 is only opened and truncated at completion, the same path can also be safely given to \-\-import\-marks\&.
.RE
.PP
\-\-import\-marks=
.RS 4
Before processing any input, load the marks specified in \&. The input file must exist, must be readable, and must use the same format as produced by \-\-export\-marks\&.
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\&.
.RE
.PP
\-\-fake\-missing\-tagger
.RS 4
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\&.
.RE
.SH "EXAMPLES"
.sp
.if n \{\
.RS 4
.\}
.nf
\&.ft C
$ git fast\-export \-\-all | (cd /empty/repository && git fast\-import)
\&.ft
.fi
.if n \{\
.RE
.\}
.sp
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\&.
.sp
.if n \{\
.RS 4
.\}
.nf
\&.ft C
$ git fast\-export master~5\&.\&.master |
sed "s|refs/heads/master|refs/heads/other|" |
git fast\-import
\&.ft
.fi
.if n \{\
.RE
.\}
.sp
This makes a new branch called \fIother\fR from \fImaster~5\&.\&.master\fR (i\&.e\&. if \fImaster\fR has linear history, it will take the last 5 commits)\&.
Note that this assumes that none of the blobs and commit messages referenced by that revision range contains the string \fIrefs/heads/master\fR\&.
.SH "LIMITATIONS"
Since \fIgit\-fast\-import\fR 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\&.
.SH "AUTHOR"
Written by Johannes E\&. Schindelin \&.
.SH "DOCUMENTATION"
Documentation by Johannes E\&. Schindelin \&.
.SH "GIT"
Part of the \fBgit\fR(1) suite
.SH "NOTES"
.IP " 1." 4
johannes.schindelin@gmx.de
.RS 4
\%mailto:johannes.schindelin@gmx.de
.RE