Come si rimuovono i commit con diramazione master
?Rimozione di commit Git su un ramo
Ho aggiunto una libreria di grandi dimensioni, insieme a una cronologia di commit molto ricca (e che precede il mio codice) in una sottodirectory tramite Git subtree. Mi piacerebbe rompere retroattivamente l'intera cronologia, ma essere ancora in grado di unire nuovi commit alla libreria.
Ho provato varie combinazioni di git rebase
ma non ho mai ottenuto il risultato previsto [*].
mio repository sembra qualcosa di simile:
A---B-----------F---G master
/
... C---D---E
e mi piacerebbe per farlo sembrare qualcosa di simile:
A---B-----------F'--G' master
/
E'
o:
A---B-------E'--F'--G' master
[*]:
git rebase --onto C E master
git checkout F; git rebase --onto C E master
L'unione sarà compromessa da tale schiacciamento. Perché vuoi schiacciarlo? Solo per ripulire l'output di gitk/git log? –
Sì, questo e il fatto che tutti i commit precedenti ammontano a diverse centinaia di megabyte. – Gingi
La tua decisione di importare una libreria integrando la sua cronologia di sviluppo nel repository del progetto è strana. – Deestan