'\" t .\" Title: git-fast-export .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 05/28/2018 .\" Manual: Git Manual .\" Source: Git 2.1.4 .\" Language: English .\" .TH "GIT\-FAST\-EXPORT" "1" "05/28/2018" "Git 2\&.1\&.4" "Git Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * 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" .sp .nf \fIgit fast\-export [options]\fR | \fIgit fast\-import\fR .fi .sp .SH "DESCRIPTION" .sp This program dumps the given revisions in a form suitable to be piped into \fIgit fast\-import\fR\&. .sp 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|warn\-strip|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\&. .sp When asking to \fIabort\fR (which is the default), this program will die when encountering a signed tag\&. With \fIstrip\fR, the tags will silently be made unsigned, with \fIwarn\-strip\fR they will be made unsigned but a warning will be displayed, with \fIverbatim\fR, they will be silently exported and with \fIwarn\fR, they will be exported, but you will see a warning\&. .RE .PP \-\-tag\-of\-filtered\-object=(abort|drop|rewrite) .RS 4 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\&. .sp When asking to \fIabort\fR (which is the default), this program will die when encountering such a tag\&. With \fIdrop\fR it will omit such tags from the output\&. With \fIrewrite\fR, if the tagged object is a commit, it will rewrite the tag to tag an ancestor commit (via parent rewriting; see \fBgit-rev-list\fR(1)) .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\&. .sp 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\&. The file will not be written if no new object has been marked/exported\&. .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\&. .sp 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 .PP \-\-use\-done\-feature .RS 4 Start the stream with a \fIfeature done\fR stanza, and terminate it with a \fIdone\fR command\&. .RE .PP \-\-no\-data .RS 4 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\&. .RE .PP \-\-full\-tree .RS 4 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\(cqs first parent)\&. .RE .PP \-\-refspec .RS 4 Apply the specified refspec to each ref exported\&. Multiple of them can be specified\&. .RE .PP [\&...] .RS 4 A list of arguments, acceptable to \fIgit rev\-parse\fR and \fIgit rev\-list\fR, that specifies the specific objects and references to export\&. For example, master~10\&.\&.master causes the current master reference to be exported along with all objects added since its 10th ancestor commit\&. .RE .SH "EXAMPLES" .sp .if n \{\ .RS 4 .\} .nf $ git fast\-export \-\-all | (cd /empty/repository && git fast\-import) .fi .if n \{\ .RE .\} .sp .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 $ git fast\-export master~5\&.\&.master | sed "s|refs/heads/master|refs/heads/other|" | git fast\-import .fi .if n \{\ .RE .\} .sp .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)\&. .sp 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" .sp Since \fIgit fast\-import\fR cannot tag trees, you will not be able to export the linux\&.git repository completely, as it contains a tag referencing a tree instead of a commit\&. .SH "GIT" .sp Part of the \fBgit\fR(1) suite