Ich fürchte, ich konnte so etwas wie dieses spezielle Szenario nicht finden.
Ich habe ein Git-Repository mit viel Geschichte: mehr als 500 Filialen, mehr als 500 Tags, die bis Mitte 2007 zurückreichen. Es enthält ~ 19.500 Commits. Wir möchten den gesamten Verlauf vor dem 1. Januar 2010 entfernen, um ihn kleiner und einfacher zu handhaben (wir würden eine vollständige Kopie des Verlaufs in einem Archiv-Repository aufbewahren).
Ich kenne das Commit, das ich zum Stamm des neuen Repositorys werden möchte. Ich kann jedoch nicht das richtige Git-Mojo herausfinden, um das Repo abzuschneiden und mit diesem Commit zu beginnen. Ich vermute eine Variante von
git filter-branch
die Einbeziehung von Transplantaten wäre notwendig; Es kann auch notwendig sein, jeden der über 200 Zweige, die wir behalten möchten, separat zu behandeln und dann das Repo wieder zusammenzufügen (etwas, das ich zu tun weiß).
Hat jemand jemals so etwas getan? Ich habe Git 1.7.2.3, wenn das wichtig ist.
git filter-branch --tag-name-filter cat -- --all
, um Tags zu aktualisieren. Ich habe aber auch ältere Tags, die auf den alten Verlauf verweisen, den ich löschen möchte. Wie kann ich all diese alten Tags loswerden? Wenn ich sie nicht lösche, verschwindet der ältere Verlauf nicht und ich kann ihn immer noch mit sehengitk --all
.