Ich habe ein Git-Repository, dessen Quellgröße nur 1 MB beträgt, aber einen 300 MB großen .git-Ordner. Es enthält über 10000 Commits.
Ich möchte mein lokales Repository klein halten, indem ich nur einige neuere Commits lokal behalte, wie kann ich das tun.
Versionen von Git vor 1.9 sind nicht besonders gut im Umgang mit flachen Klonen. Wenn Sie diesen Weg gehen, stellen Sie sicher, dass Sie eine aktuelle Version von Git verwenden.
Normalerweise sind Commits sehr klein, und selbst 10.000 Commits sollten nicht viel Platz verbrauchen. Die Blobs, auf die sie zeigen, können jedoch.
Angenommen, Sie können die Geschichte nicht dauerhaft ändern
Versuchen Sie ein aggressives Neupacken, um die Objekte zu komprimieren.
git repack -a -d --depth=250 --window=250
Verwenden Sie einen gemeinsam genutzten Objektspeicher, wenn dies für Ihre Situation durchführbar ist .git/objects/info/alternates
Wenn diese nicht funktionieren und der Verlauf behoben ist, versuchen Sie es mit einem flachen Klon git clone --depth
. Lesen Sie unbedingt die Hilfeseite zum Klonen und verstehen Sie, was Sie tun.
Tut
git gc
Hilfe? Das Entfernen alter Commits widerspricht vollständig dem Geist von Git. Normalerweise möchten Sie den gesamten Verlauf lokal haben. Warum haben Sie überhaupt 10000 Commits in einem so kleinen Repo? Wie auch immer, Sie können einen flachen Klon mit erstellengit clone --depth N
die nur den N letzten Commit im Klon haben wird.– Meister der Diebe
8. Oktober 2014 um 3:15 Uhr
Ich habe es versucht, hilft nicht viel. Aber
git clone --depth N
hilft.– Sato
8. Oktober 2014 um 5:39 Uhr