git fast-export

Verwaltung

Exportiert die Historie als fast-import-Textstream


Der Befehl 'git fast-export' schreibt die Historie von Branches als Textstream: jede Dateiversion (Blob) mit einer Marke und jeden Commit, der auf sie verweist. Der Stream lässt sich bearbeiten, filtern oder an git fast-import (oder ein anderes Versionsverwaltungssystem) geben, um die Historie neu aufzubauen — die Grundlage vieler Migrations- und Umschreibwerkzeuge.

Syntax

git fast-export [--all] [<rev-list-options>...]
[ ] optional| oder<arg> Platzhalter... wiederholbar--flag Option

Optionen

Klicke auf eine Option, um sie aufzuklappen

Einsteiger (1)

Exportiert jeden Branch und jeden Tag.

EmpfohlenDas vollständige Repository exportieren

Beispiel

git fast-export --all

Die richtige Option wählen

Historie übertragen

Stream, Bundle oder Klon

BefehlFormat
git fast-exportLesbarer Textstream
git bundleBinäres Pack in einer Datei
git cloneEin vollständiges Repository

Beispiele

Ein Branch

git fast-export main > main.fi

Die Historie von main als Text.


Alles

git fast-export --all > repo.fi

Jeder Branch und jeder Tag.


Ein Repository kopieren

git fast-export --all | (cd ../copy && git fast-import)

Die Historie anderswo neu aufbauen.

Workflow-Beispiele

1
git fast-export --all > repo.fi

Exportieren

2
othertool fast-import < repo.fi

Die meisten Versionsverwaltungen lesen dieses Format

Fehlerbehebung

Signierte Commits brechen den Export ab

Ursache: Signaturen können im Stream nicht erhalten bleiben

Ergänze --signed-tags=strip (und bei neuerem Git --signed-commits=strip)

Tipps & Stolperfallen

Best Practices

  • ✓Für das Umschreiben der Historie ist git filter-repo besser als das Bearbeiten eines Streams von Hand.

Häufige Fehler

  • ✗Den Stream für große Umschreibungen von Hand bearbeiten — nutze git filter-repo, das darauf aufbaut.

FAQ

A:

Eine Nummer wie :3, die einen Blob oder Commit im Stream benennt, damit spätere Einträge darauf verweisen können.