git-fast-export – Online in der Cloud

Dies ist der Befehl git-fast-export, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


git-fast-export – Git-Datenexporter

ZUSAMMENFASSUNG


git Schnell-Export [Optionen] | git Schnellimport

BESCHREIBUNG


Dieses Programm speichert die angegebenen Revisionen in einer Form, die zur Weiterleitung geeignet ist git
Schnellimport.

Sie können es als menschenlesbaren Bundle-Ersatz verwenden (siehe Git-Bundle(1)) oder als eine Art
eine interaktive git Filter-Zweig.

OPTIONAL


--progress=
Insert Fortschritt Aussagen alle Objekte, die gezeigt werden sollen git Schnellimport im
einführen.

--signed-tags=(verbatim|warn|warn-strip|strip|abort)
Geben Sie an, wie mit signierten Tags umgegangen werden soll. Da jede Transformation nach dem Export möglich ist
Ändern Sie die Tag-Namen (was auch beim Ausschließen von Revisionen passieren kann) und die Signaturen
wird nicht übereinstimmen.

Wenn man darum bittet abbrechen (was die Standardeinstellung ist), stirbt dieses Programm ab, wenn es auf a trifft
signiertes Etikett. Mit abstreifen, werden die Tags stillschweigend unsigniert gemacht, mit Warnstreifen vom Nutzer definierten
wird unsigniert gemacht, es wird jedoch eine Warnung mit angezeigt wörtlich, Sie werden
stillschweigend exportiert und mit warnen, werden sie exportiert, es wird jedoch eine Warnung angezeigt.

--tag-of-filtered-object=(abort|drop|rewrite)
Geben Sie an, wie mit Tags umgegangen werden soll, deren markiertes Objekt herausgefiltert wird. Da Revisionen und
Die zu exportierenden Dateien können nach Pfad eingeschränkt werden. Mit Tags versehene Objekte können vollständig gefiltert werden.

Wenn man darum bittet abbrechen (Dies ist die Standardeinstellung). Dieses Programm stirbt bei der Begegnung ab
so ein Tag. Mit fallen lassen Solche Tags werden in der Ausgabe weggelassen. Mit umschreibenWenn die
Wenn das getaggte Objekt ein Commit ist, wird das Tag neu geschrieben, um ein Vorfahren-Commit zu taggen (via
übergeordnetes Umschreiben; sehen git-rev-Liste(1))

-M, -C
Führen Sie die Bewegungs- und/oder Kopiererkennung durch, wie im beschrieben git-diff(1) Handbuchseite und
Verwenden Sie es, um Umbenennungs- und Kopierbefehle im Ausgabe-Dump zu generieren.

Beachten Sie, dass frühere Versionen dieses Befehls keine Beanstandungen hervorriefen und fehlerhafte Ergebnisse lieferten
Ergebnisse, wenn Sie diese Optionen angegeben haben.

--export-marks=
Gibt die interne Markierungstabelle aus wenn es fertig ist. Es wird eine Note pro Zeile geschrieben
als :markid SHA-1. Es werden nur Noten für Überarbeitungen ausgegeben. Markierungen für Blobs werden ignoriert.
Backends können diese Datei verwenden, um Importe zu validieren, nachdem sie abgeschlossen wurden, oder um
Speichern Sie die Markierungstabelle über inkrementelle Läufe hinweg. Als wird nur geöffnet und abgeschnitten
Nach Abschluss kann derselbe Pfad auch sicher an --import-marks übergeben werden. Die Datei wird
wird nicht geschrieben, wenn kein neues Objekt markiert/exportiert wurde.

--import-marks=
Laden Sie vor der Verarbeitung einer Eingabe die in angegebenen Markierungen . Die Eingabedatei muss
vorhanden sein, lesbar sein und dasselbe Format verwenden, das von --export-marks erzeugt wurde.

Bereits markierte Commits werden nicht erneut exportiert. Wenn das Backend
verwendet eine ähnliche --import-marks-Datei, dies ermöglicht eine inkrementelle bidirektionale Funktion
Exportieren des Repositorys, indem die Markierungen über alle Läufe hinweg gleich bleiben.

--fake-missing-tagger
Einige alte Repositorys haben Tags ohne Tagger. Das Schnellimportprotokoll war hübsch
Ich war diesbezüglich sehr streng und habe das nicht zugelassen. Fake also einen Tagger, um schnell importieren zu können
die Ausgabe.

--use-done-feature
Starten Sie den Stream mit a -Funktion erledigt Strophe und beenden Sie sie mit a erledigt Befehl.

--keine Daten
Überspringen Sie die Ausgabe von Blob-Objekten und verweisen Sie stattdessen über ihren ursprünglichen SHA-1-Hash auf Blobs.
Dies ist nützlich, wenn Sie die Verzeichnisstruktur oder den Verlauf eines Repositorys neu schreiben
ohne den Inhalt einzelner Dateien zu berühren. Beachten Sie, dass der resultierende Stream dies kann
darf nur von einem Repository verwendet werden, das bereits die erforderlichen Objekte enthält.

--Vollbaum
Diese Option bewirkt, dass Fast-Export für jedes Commit eine „deleteall“-Anweisung ausgibt
gefolgt von einer vollständigen Liste aller Dateien im Commit (im Gegensatz zur bloßen Auflistung der
Dateien, die sich vom ersten übergeordneten Element des Commits unterscheiden).

--anonymisieren
Anonymisieren Sie den Inhalt des Repositorys und behalten Sie dabei die Form des Repositorys bei
Geschichte und gespeicherter Baum. Siehe den Abschnitt zur ANONYMISIERUNG weiter unten.

--refspec
Wenden Sie die angegebene Referenzspezifikation auf jede exportierte Referenz an. Es können mehrere davon angegeben werden.

[ ...]
Eine Liste von Argumenten, die akzeptabel sind git rev-parse und git Drehzahlliste, das gibt die an
spezifische Objekte und Referenzen zum Exportieren. Zum Beispiel verursacht master~10..master das
aktuelle Master-Referenz, die zusammen mit allen seit dem 10. hinzugefügten Objekten exportiert werden soll
Vorfahren-Commit.

Beispiele:


$ git fast-export --all | (cd /empty/repository && git fast-import)

Dadurch wird das gesamte Repository exportiert und in das vorhandene leere Repository importiert.
Mit Ausnahme von Neucodierungs-Commits, die nicht in UTF-8 vorliegen, wäre es eine Eins-zu-eins-Spiegelung.

$ git fast-export master~5..master |
sed „s|refs/heads/master|refs/heads/other|“ |
Git Schnellimport

Dadurch wird ein neuer Zweig namens erstellt mehr für Meister~5..Meister (dh wenn Master hat linear
Verlauf, es werden die letzten 5 Commits benötigt).

Beachten Sie, dass dies davon ausgeht, dass keine der darin referenzierten Blobs und Commit-Nachrichten vorhanden sind
Der Revisionsbereich enthält die Zeichenfolge Refs/Heads/Master.

ANONYMISIERUNG


Wenn die Option --anonymize angegeben ist, versucht Git, alle identifizierenden Informationen zu entfernen
aus dem Repository, wobei immer noch ein ausreichender Teil der ursprünglichen Baum- und Verlaufsmuster erhalten bleibt
um einige Fehler zu reproduzieren. Das Ziel besteht darin, einen Git-Bug zu finden, der in einem privaten Repository gefunden wird
bleibt im anonymisierten Repository bestehen und kann mit Git geteilt werden
Entwickler, die bei der Behebung des Fehlers helfen.

Mit dieser Option ersetzt Git alle Referenznamen, Pfade, Blob-Inhalte, Commits und Tags
Nachrichten, Namen und E-Mail-Adressen in der Ausgabe mit anonymisierten Daten. Zwei Fälle von
Dieselbe Zeichenfolge wird äquivalent ersetzt (z. B. werden zwei Commits mit demselben Autor ersetzt
haben denselben anonymisierten Autor in der Ausgabe, weisen jedoch keine Ähnlichkeit mit dem Original auf
Autorenzeichenfolge). Auch die Beziehung zwischen Commits, Branches und Tags bleibt erhalten
wie die Commit-Zeitstempel (aber die Commit-Nachrichten und Refnamen haben keine Ähnlichkeit mit dem
Originale). Der relative Aufbau des Baums bleibt erhalten (z. B. wenn Sie einen Wurzelbaum haben).
mit 10 Dateien und 3 Bäumen, auch die Ausgabe), aber ihre Namen und der Inhalt der
Dateien werden ersetzt.

Wenn Sie glauben, einen Git-Bug gefunden zu haben, können Sie zunächst einen anonymisierten Stream exportieren
das gesamte Repository:

$ git fast-export --anonymize --all >anon-stream

Bestätigen Sie dann, dass der Fehler in einem aus diesem Stream erstellten Repository weiterhin besteht (viele Fehler).
nicht, da sie wirklich vom genauen Repository-Inhalt abhängen):

$ git init anon-repo
$ cd anon-repo
$ git fast-import <../anon-stream
$ ... testen Sie Ihren Fehler ...

Wenn das anonymisierte Repository den Fehler anzeigt, kann es sich lohnen, den Anon-Stream mit ihm zu teilen
ein regelmäßiger Fehlerbericht. Beachten Sie, dass der anonymisierte Stream sehr gut komprimiert werden kann, also komprimieren Sie ihn
wird gefördert. Wenn Sie den Stream untersuchen möchten, um festzustellen, ob er keine enthält
Private Daten können Sie direkt vor dem Absenden einsehen. Vielleicht möchten Sie auch Folgendes ausprobieren:

$ perl -pe 's/\d+/X/g'

Hier werden alle eindeutigen Zeilen angezeigt (mit in „X“ umgewandelten Zahlen, um „Benutzer 0“ auszublenden).
„Benutzer 1“ usw. in „Benutzer X“). Dies führt zu einer viel geringeren Leistung und ist normalerweise einfach
um schnell zu bestätigen, dass der Stream keine privaten Daten enthält.

EINSCHRÄNKUNGEN


Da git Schnellimport Da Bäume nicht mit Tags versehen werden können, können Sie die linux.git-Datei nicht exportieren
Repository vollständig, da es ein Tag enthält, das auf einen Baum verweist, und nicht auf einen Commit.

Nutzen Sie git-fast-export online über die Dienste von onworks.net



Neueste Linux- und Windows-Online-Programme