Entfernen Sie viele Dateien in git filter-branch

8

Ich migriere ein Repository von svn nach git.

In diesem letzten Schritt möchte ich Tonnen von Dateien entfernen, die nicht aus dem Verlauf benötigt werden.

Ich versuche den folgenden Befehl:

%Vor%

Aber es sagt, dass die Argumentliste zu lang ist.

Ich könnte das folgendermaßen umschreiben:

%Vor%

Aber es wird Filter-Zweig Tonnen von Zeiten laufen, und die Geschichte ist lang .. so würde es zu viel Zeit dauern.

Gibt es einen schnelleren Weg, um viele Dateien zu filtern?

    
caarlos0 01.08.2013, 12:01
quelle

1 Antwort

5

Ich würde empfehlen, The BFG zu verwenden, eine einfachere und schnellere Alternative zu git-filter-branch , die speziell dafür entwickelt wurde Entfernen unerwünschter Dateien aus dem Git-Verlauf.

Sie erwähnten in Ihren Kommentar dass die Problemdateien in der Regel große Binaries sind und The BFG eine spezielle Option für die Handhabung hat - Sie sollten die BFGs genau befolgen Gebrauchsanweisungen , aber der Kernteil ist nur das:

%Vor%

Alle Dateien mit einer Größe von mehr als 10 MB (die sich nicht in Ihrem letzten Commit befinden) werden aus dem Verlauf Ihres Git-Repositorys entfernt. Sie können dann git gc verwenden, um die toten Daten zu entfernen:

%Vor%

Die BFG ist in der Regel mindestens 10-720x schneller als das Ausführen von git-filter-branch . und in der Regel einfacher zu bedienen.

Vollständige Offenlegung: Ich bin der Autor des BFG Repo-Cleaner.

    
Roberto Tyley 01.08.2013, 12:38
quelle