To jest polecenie git-fast-export, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
git-fast-export - Eksporter danych Git
STRESZCZENIE
odrzutowiec szybki eksport [opcje] | odrzutowiec szybki import
OPIS
Ten program zrzuca podane wersje w formie odpowiedniej do przesłania odrzutowiec
szybki import.
Można go używać jako zamiennika pakietu czytelnego dla człowieka (patrz pakiet git(1)), lub jako swego rodzaju
interaktywny odrzutowiec filtr-gałąź.
OPCJE
--postęp=
wstawka postęp wypowiedzi co obiekty, które mają być pokazane odrzutowiec szybki import podczas
import.
--signed-tags=(dosłownie|ostrzegaj|ostrzegaj-pasek|przerywanie|przerwanie)
Określ sposób obsługi podpisanych tagów. Ponieważ każda transformacja po eksporcie może
zmienić nazwy znaczników (co może się również zdarzyć przy wykluczaniu wersji) podpisy
nie będzie pasować.
Kiedy o to proszę poronienie (co jest ustawieniem domyślnym), program ten umrze po napotkaniu pliku
podpisana etykieta. Z rozebrać się, tagi zostaną po cichu oznaczone jako niepodpisane, z pasek ostrzegawczy one
zostanie wyświetlony jako niepodpisany, ale zostanie wyświetlone ostrzeżenie, z dosłownie, oni będą
cicho eksportowane iz ostrzec, zostaną wyeksportowane, ale zostanie wyświetlone ostrzeżenie.
--tag-of-filtered-obiekt=(przerwanie|upuść|przepisanie)
Określ sposób obsługi znaczników, których oznaczony obiekt jest odfiltrowywany. Od wersji i
pliki do eksportu mogą być ograniczone ścieżką, oznaczone obiekty mogą być całkowicie filtrowane.
Kiedy o to proszę poronienie (co jest ustawieniem domyślnym), ten program umrze po napotkaniu
taki tag. Z upuszczać pominie takie znaczniki w wynikach. Z przepisać, jeśli
oznaczony obiekt jest zatwierdzeniem, przepisze znacznik, aby oznaczyć zatwierdzenie przodka (przez
przepisywanie przez rodziców; Widzieć git-rev-lista(1))
-M, -C
Wykonaj wykrywanie przenoszenia i/lub kopiowania, jak opisano w git-diff(1) strona podręcznika oraz
użyj go do wygenerowania poleceń zmiany nazwy i kopiowania w zrzucie wyjściowym.
Należy pamiętać, że wcześniejsze wersje tego polecenia nie zgłaszały żadnych skarg i wyświetlały się niepoprawnie
wyników, jeśli podałeś te opcje.
--export-znaki=
Zrzuca tabelę ocen wewnętrznych do kiedy jest kompletny. Znaki są zapisywane po jednym w każdym wierszu
jako :markid SHA-1. Zrzucane są tylko oceny za poprawki; znaczniki obiektów blob są ignorowane.
Backendy mogą używać tego pliku do sprawdzania importu po jego zakończeniu lub do
zapisz tabelę ocen w seriach przyrostowych. Jak jest tylko otwarty i obcięty
po zakończeniu tę samą ścieżkę można również bezpiecznie podać do --import-marks. Plik będzie
nie zostanie zapisany, jeśli żaden nowy obiekt nie został zaznaczony/wyeksportowany.
--import-znaki=
Przed przetworzeniem jakichkolwiek danych wejściowych załaduj znaczniki określone w . Plik wejściowy musi
istnieje, musi być czytelny i musi używać tego samego formatu, jaki został utworzony przez --export-marks.
Wszelkie zatwierdzenia, które zostały już zaznaczone, nie zostaną ponownie wyeksportowane. Jeśli zaplecze
używa podobnego pliku --import-marks, co pozwala na przyrostową dwukierunkowość
eksportowanie repozytorium poprzez zachowanie takich samych oznaczeń w różnych przebiegach.
--fałszywy-brakujący-tagger
Niektóre stare repozytoria mają tagi bez tagera. Protokół szybkiego importu był ładny
surowo i na to nie pozwolił. Więc sfałszuj tag, aby móc szybko importować
wyjście.
--funkcja-użyj
Rozpocznij transmisję za pomocą a cecha zrobić zwrotkę i zakończ ją a zrobić dowództwo.
--brak danych
Pomiń dane wyjściowe obiektów blob i zamiast tego odwołuj się do obiektów blob za pomocą ich oryginalnego skrótu SHA-1.
Jest to przydatne podczas przepisywania struktury katalogów lub historii repozytorium
bez dotykania zawartości poszczególnych plików. Należy pamiętać, że wynikowy strumień może
być używane tylko przez repozytorium, które zawiera już niezbędne obiekty.
--pełne-drzewo
Ta opcja spowoduje, że szybki eksport wyda dyrektywę „deleteall” dla każdego zatwierdzenia
po którym następuje pełna lista wszystkich plików objętych zatwierdzeniem (w przeciwieństwie do zwykłego wypisywania pliku
pliki, które różnią się od pierwszego rodzica zatwierdzenia).
--anonimizować
Anonimizuj zawartość repozytorium, zachowując jednocześnie kształt
historia i zapisane drzewo. Zobacz sekcję dotyczącą ANONIMOWANIA poniżej.
--refspec
Zastosuj określoną specyfikację referencyjną do każdego wyeksportowanego referencji. Można określić ich wiele.
[ ...]
Lista argumentów, które można zaakceptować odrzutowiec przeanalizować i odrzutowiec lista rewizji, który określa
określone obiekty i referencje do eksportu. Na przykład master~10..master powoduje, że
bieżące odniesienie główne do wyeksportowania wraz ze wszystkimi obiektami dodanymi od jego 10
zatwierdzenie przodka.
PRZYKŁADY
$ git szybki eksport --all | (cd /puste/repozytorium && git fast-import)
Spowoduje to wyeksportowanie całego repozytorium i zaimportowanie go do istniejącego pustego repozytorium.
Z wyjątkiem ponownego kodowania zatwierdzeń, które nie są w UTF-8, byłoby to lustro jeden do jednego.
$ git master szybkiego eksportu~5..master |
sed "s|refs/heads/master|refs/heads/inne|" |
git szybki import
To tworzy nową gałąź o nazwie Inne od mistrz~5..mistrz (tzn. jeśli mistrz ma charakter liniowy
history, zajmie to ostatnie 5 zatwierdzeń).
Należy zauważyć, że zakłada się, że żaden z obiektów BLOB i komunikatów zatwierdzeń, do których się odwołuje
zakres wersji zawiera ciąg ref/headers/master.
ANONIMIZACJA
Jeśli podana zostanie opcja --anonymize, git spróbuje usunąć wszystkie informacje identyfikujące
z repozytorium, zachowując jednocześnie wystarczającą ilość oryginalnego drzewa i wzorców historii
aby odtworzyć niektóre błędy. Celem jest znalezienie błędu git w prywatnym repozytorium
pozostanie w zanonimizowanym repozytorium, które można udostępnić gitowi
programistom o pomoc w rozwiązaniu problemu.
Dzięki tej opcji git zastąpi wszystkie nazwy ref, ścieżki, zawartość obiektów blob, zatwierdzenia i znaczniki
wiadomości, nazwiska i adresy e-mail w wynikach z anonimowymi danymi. Dwa przypadki
ten sam ciąg zostanie zastąpiony równoważnie (np. dwa zatwierdzenia tego samego autora
mają w wynikach tego samego anonimowego autora, ale nie przypominają oryginału
ciąg autora). Relacja pomiędzy zatwierdzeniami, gałęziami i znacznikami również zostaje zachowana
jako znaczniki czasu zatwierdzenia (ale komunikaty zatwierdzeń i nazwy ref. w niczym nie przypominają
oryginały). Względny skład drzewa zostaje zachowany (np. jeśli masz drzewo korzeniowe
z 10 plikami i 3 drzewami, podobnie jak dane wyjściowe), ale ich nazwy i zawartość pliku
pliki zostaną zastąpione.
Jeśli uważasz, że znalazłeś błąd Git, możesz zacząć od wyeksportowania anonimowego strumienia
całe repozytorium:
$ git fast-export --anonymize --all >anon-stream
Następnie potwierdź, że błąd występuje w repozytorium utworzonym na podstawie tego strumienia (wiele błędów
nie, ponieważ tak naprawdę zależą one od dokładnej zawartości repozytorium):
$ git init anon-repo
$ cd anon-repo
$ git szybki import <../anon-stream
$ ... przetestuj swój błąd ...
Jeśli zanonimizowane repozytorium pokazuje błąd, warto udostępnić razem z nim transmisję strumieniową
regularny raport o błędach. Pamiętaj, że zanonimizowany strumień kompresuje się bardzo dobrze, dlatego należy go spakować
jest dobrze widziane. Jeśli chcesz sprawdzić strumień, aby zobaczyć, że go nie zawiera
prywatnych danych, możesz zapoznać się z nimi bezpośrednio przed wysłaniem. Możesz także spróbować:
$ perl -pe 's/\d+/X/g'
który pokazuje wszystkie unikalne linie (z liczbami zamienionymi na „X”, aby zwinąć „Użytkownik 0”,
„Użytkownik 1” itd. w „Użytkownik X”). Daje to znacznie mniejszą moc wyjściową i zwykle jest łatwe
aby szybko potwierdzić, że w strumieniu nie ma prywatnych danych.
OGRANICZENIA
Ponieważ odrzutowiec szybki import nie można oznaczyć drzew, nie będzie można wyeksportować pliku linux.git
repozytorium, ponieważ zawiera znacznik odwołujący się do drzewa zamiast zatwierdzenia.
Użyj git-fast-export online, korzystając z usług onworks.net