2016-04-20 17 views
4

Ich habe große Git-Repository. Und Größe des Dotgitordners sehr groß. (350gb - ty für unsere 3D Modellierer :)) Ich habe 240gb freien Speicherplatz in der Festplatte. Wenn ich habe versucht, diesen Befehl auszuführen:Wie kann ich die Größe meines Repositorys reduzieren?

git gc --prune=now --aggressive 

ich einige Fehler bekam:

can't allocate memory...lalala 

Was soll ich damit? Soll ich zum git Server gehen und diesen Befehl dort ausführen?

+1

Die Beschriftung und der Inhalt Ihrer Frage sind grundsätzlich zwei verschiedene Fragen. Möchtest du deine Geschichte behalten oder nicht? –

+0

@RolandSmith Ty für die Antwort. Es tut uns leid. Ja ich will Geschichte seit 2016 Jahr behalten. Und wollen dotgit Ordner zu löschen – Max

+0

Das '.git' Verzeichnis ist, wo Ihre Geschichte ist. Du kannst es nicht vollständig löschen und * alle * deiner Geschichte behalten. Ich denke, Sie möchten * einige * Ihres Verlaufs löschen, aber Sie müssen die Frage mit weiteren Details über das, was Sie tun möchten, aktualisieren. –

Antwort

1

Das Repository hat wahrscheinlich im Laufe der Zeit viele große Dateien übertragen. Das Abhacken Ihrer Geschichte hilft nicht wirklich, das Problem wird zurückkommen, wenn größere Dateien hinzugefügt und bearbeitet werden und Sie die Geschichte Ihrer Arbeit verloren haben.

Anstatt große Dateien direkt zu committen, verwenden Sie Git Large File Storage (git-lfs). Dadurch können Sie große Dateien festschreiben und den Verlauf beibehalten, ohne die Repository-Größe zu erweitern.

Was ist mit all diesen alten Commits? Verwenden Sie die BFG Repo Cleaner nicht nur zum Abschneiden Ihres Verlaufs an einem beliebigen Datum, sondern löschen Sie große Dateien aus Ihrem Verlauf. Auf diese Weise können Sie Ihren Verlauf beibehalten und gleichzeitig nur die größten fehlerhaften Dateien entfernen.

Noch besser können Sie die beiden kombinieren! BFG kann Ihre bestehenden Commits für große Dateien in kleine git-lfs Commits mit dem kürzlich hinzugefügten --convert-to-git-lfs konvertieren. It's all documented in this blog post. Dies ist das Beste aus beiden Welten: Sie behalten Ihren gesamten Verlauf, alle Ihre Dateien und Sie erhalten ein schlankes Repository. Sobald dies erledigt ist, verwenden Sie git-lfs für alle zukünftigen großen Dateien.

+0

Ty! Ich werde es versuchen! – Max

Verwandte Themen