Dit is de opdracht git-fast-export die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
git-fast-export - Git-gegevensexporteur
KORTE INHOUD
git snel exporteren [Opties] | git snel importeren
PRODUCTBESCHRIJVING
Dit programma dumpt de gegeven revisies in een vorm die geschikt is om in te verwerken git
snel importeren.
U kunt het gebruiken als voor mensen leesbare bundelvervanging (zie git-bundel(1)), of als een soort
een interactief git filtertak.
OPTIES
--vooruitgang=
Invoegen voortgang verklaringen elke objecten, te laten zien door git snel importeren gedurende
importeren.
--signed-tags=(letterlijk|waarschuwen|waarschuwen-strip|strip|afbreken)
Geef op hoe ondertekende tags moeten worden verwerkt. Omdat elke transformatie na de export dat kan
verander de tagnamen (wat ook kan gebeuren bij het uitsluiten van revisies) en de handtekeningen
zal niet overeenkomen.
Wanneer je ernaar vraagt afbreken (wat de standaard is), zal dit programma sterven wanneer het een
ondertekend label. Met strip, worden de tags stilletjes ongetekend gemaakt, met waarschuwingsstrip ze
wordt niet-ondertekend gemaakt, maar er wordt een waarschuwing weergegeven, met woordelijk, zij zullen zijn
stil geëxporteerd en met waarschuwen, worden ze geëxporteerd, maar u ziet een waarschuwing.
--tag-of-filtered-object=(abort|drop|rewrite)
Geef op hoe om te gaan met tags waarvan het getagde object wordt uitgefilterd. Sinds herzieningen en
te exporteren bestanden kunnen worden beperkt per pad, getagde objecten kunnen volledig worden gefilterd.
Wanneer je ernaar vraagt afbreken (wat de standaard is), zal dit programma sterven wanneer het tegenkomt
zo'n etiket. Met laten vallen het zal dergelijke tags uit de uitvoer weglaten. Met herschrijvenIndien de
getagd object een commit is, zal het de tag herschrijven om een voorouder commit te taggen (via
ouder herschrijven; zien git-rev-lijst(1))
-M, -C
Voer verplaatsings- en/of kopieerdetectie uit, zoals beschreven in de git-diff(1) handleidingpagina, en
gebruik het om hernoem- en kopieeropdrachten in de uitvoerdump te genereren.
Merk op dat eerdere versies van dit commando niet klaagden en onjuist produceerden
resultaten als u deze opties gaf.
--export-markeringen=
Dumpt de tabel met interne markeringen naar wanneer voltooid. Markeringen worden één per regel geschreven
als: markante SHA-1. Alleen cijfers voor revisies worden gedumpt; markeringen voor blobs worden genegeerd.
Backends kunnen dit bestand gebruiken om importbewerkingen te valideren nadat deze zijn voltooid, of om
sla de merkentabel op voor incrementele runs. Als wordt alleen geopend en afgekapt
na voltooiing kan hetzelfde pad ook veilig worden gegeven aan --import-marks. Het bestand zal
niet worden geschreven als er geen nieuw object is gemarkeerd/geëxporteerd.
--import-markeringen=
Voordat u enige invoer verwerkt, laadt u de markeringen die zijn opgegeven in . Het invoerbestand moet
bestaat, moet leesbaar zijn en moet hetzelfde formaat gebruiken als geproduceerd door --export-marks.
Eventuele commits die al zijn gemarkeerd, worden niet opnieuw geëxporteerd. Als de backend
gebruikt een soortgelijk --import-marks bestand, dit maakt incrementeel bidirectioneel mogelijk
exporteren van de repository door de markeringen voor alle runs hetzelfde te houden.
--fake-ontbrekende-tagger
Sommige oude repositories hebben tags zonder tagger. Het snelle importprotocol was mooi
was daar streng in en liet dat niet toe. Dus fake een tagger om snel te kunnen importeren
het resultaat.
--use-done-functie
Start de stream met een kenmerken gedaan strofe, en sluit deze af met een gedaan opdracht.
--geen informatie
Sla de uitvoer van blobobjecten over en verwijs in plaats daarvan naar blobs via hun originele SHA-1-hash.
Dit is handig bij het herschrijven van de mapstructuur of geschiedenis van een repository
zonder de inhoud van individuele bestanden aan te raken. Merk op dat de resulterende stroom dat wel kan
alleen worden gebruikt door een repository die al de benodigde objecten bevat.
--volledige boom
Deze optie zorgt ervoor dat fast-export voor elke commit een "deleteall" -richtlijn uitvaardigt
gevolgd door een volledige lijst van alle bestanden in de commit (in plaats van alleen de
bestanden die verschillend zijn van de eerste ouder van de commit).
--anonimiseren
Anonimiseer de inhoud van de repository terwijl de vorm van de repository behouden blijft
geschiedenis en opgeslagen boom. Zie het gedeelte over ANONIMISEREN hieronder.
--refspecificatie
Pas de opgegeven refspecificatie toe op elke geëxporteerde ref. Er kunnen er meerdere worden gespecificeerd.
[ ...]
Een lijst met argumenten, aanvaardbaar voor git rev-ontleed en git rev-lijst, dat specificeert de
specifieke objecten en referenties om te exporteren. Master~10..master veroorzaakt bijvoorbeeld de
huidige hoofdreferentie die moet worden geëxporteerd samen met alle objecten die sinds de 10e zijn toegevoegd
voorouder commit.
Voorbeelden
$ git fast-export --all | (cd /empty/repository && git fast-import)
Hierdoor wordt de hele repository geëxporteerd en geïmporteerd in de bestaande lege repository.
Met uitzondering van het hercoderen van commits die niet in UTF-8 voorkomen, zou het een één-op-één mirror zijn.
$ git fast-export master~5..master |
sed "s|refs/heads/master|refs/heads/andere|" |
git snel importeren
Hierdoor wordt een nieuwe tak genoemd anders van meester~5..meester (dwz als meester heeft lineair
geschiedenis, het duurt de laatste 5 commits).
Houd er rekening mee dat hierbij wordt aangenomen dat geen van de blobs en commit-berichten waarnaar wordt verwezen, is
revisiebereik bevat de tekenreeks refs/hoofden/master.
ANONIMISEREN
Als de optie --anonymize wordt gegeven, zal git proberen alle identificerende informatie te verwijderen
uit de repository, terwijl er nog steeds voldoende originele boom- en geschiedenispatronen behouden blijven
om enkele bugs te reproduceren. Het doel is dat er een git-bug wordt gevonden in een privérepository
zal blijven bestaan in de geanonimiseerde repository, en deze laatste kan worden gedeeld met git
ontwikkelaars om de bug te helpen oplossen.
Met deze optie zal git alle refnames, paden, blob-inhoud, commit en tag vervangen
berichten, namen en e-mailadressen in de uitvoer met geanonimiseerde gegevens. Twee exemplaren van
dezelfde string zal op equivalente wijze worden vervangen (bijvoorbeeld twee commits met dezelfde auteur zullen
hebben dezelfde geanonimiseerde auteur in de uitvoer, maar vertonen geen gelijkenis met het origineel
auteurreeks). De relatie tussen commits, branches en tags blijft ook behouden
als de commit-tijdstempels (maar de commit-berichten en refnames lijken niet op de
originelen). De relatieve samenstelling van de boom blijft behouden (bijvoorbeeld als u een wortelboom heeft).
met 10 bestanden en 3 bomen, dat geldt ook voor de uitvoer), maar hun namen en de inhoud van de
bestanden worden vervangen.
Als je denkt dat je een git-bug hebt gevonden, kun je beginnen met het exporteren van een geanonimiseerde stroom van
de hele opslagplaats:
$ git fast-export --anonymize --all >anon-stream
Bevestig vervolgens dat de bug blijft bestaan in een repository die op basis van die stream is gemaakt (veel bugs
zullen dat niet doen, omdat ze echt afhankelijk zijn van de exacte inhoud van de repository):
$ git init anon-repo
$ cd anon-repo
$ git fast-import <../anon-stream
$ ... test je bug ...
Als de geanonimiseerde repository de bug vertoont, kan het de moeite waard zijn om anon-stream mee te delen
een regelmatig bugrapport. Merk op dat de geanonimiseerde stream heel goed wordt gecomprimeerd, dus gzip deze
wordt aangemoedigd. Als je de stream wilt onderzoeken om te zien dat deze er geen bevat
privégegevens, kunt u deze direct inzien voordat u deze verzendt. Misschien wilt u ook het volgende proberen:
$ perl -pe 's/\d+/X/g'
die alle unieke regels toont (met getallen geconverteerd naar "X", om "Gebruiker 0" samen te vouwen),
"Gebruiker 1", enz. in "Gebruiker X"). Dit levert een veel kleinere output op, en het is meestal gemakkelijk
om snel te bevestigen dat er geen privégegevens in de stream aanwezig zijn.
Beperkingen
Sinds git snel importeren Als je geen bomen kunt taggen, kun je linux.git niet exporteren
repository volledig, omdat deze een tag bevat die verwijst naar een boom in plaats van naar een commit.
Gebruik git-fast-export online met behulp van onworks.net-services