Temo di non riuscire a trovare qualcosa di simile a questo particolare scenario.
Ho un repository git con molta storia: 500+ rami, 500+ tag, che risale alla metà del 2007. Contiene ~ 19.500 commit. Vorremmo rimuovere tutta la cronologia prima del 1 ° gennaio 2010, per renderla più piccola e più semplice da gestire (conserveremmo una copia completa della cronologia in un repository di archivi).
Conosco il commit che voglio essere diventato la radice del nuovo repository. Non riesco, tuttavia, a capire il git mojo corretto per troncare il repository per iniziare con quel commit. Sto indovinando una variante di
git filter-branch
coinvolgere innesti sarebbe necessario; potrebbe anche essere necessario per il trattamento di ciascuna delle oltre 200 filiali che vogliamo tenere separatamente e poi ricucire il repo di nuovo insieme (cosa che non so come fare).
Qualcuno ha mai fatto qualcosa del genere? Ho git 1.7.2.3 se questo è importante.
git filter-branch --tag-name-filter cat -- --all
per aggiornare i tag. Ma ho anche tag più vecchi che puntano alla vecchia storia che voglio eliminare. Come posso eliminare tutti quei vecchi tag? Se non li elimino, la cronologia precedente non scompare e posso ancora vederla congitk --all
.