2011-11-11 21 views
6

E 'anche possibile rimuovere un particolare changeset da un repository Git del tutto. Voglio farlo perché c'è stato un commit che ha aggiunto alcuni file binari che sono assolutamente inutili per la gestione del codice sorgente.Rimuovere del tutto un changeset specifico dal repository Git?

Posso capire se questo è impossibile da fare dato che i nodi di commit hanno genitori e una storia specifica, ma immagino che non farà male a chiedere.

E la risposta è no per domande che si chiedono "puoi semplicemente clonare una nuova copia del tempo prima che si verifichi il commit e ricominciare da lì?".

+0

possibile duplicato di [Come rimuovere un file grande commesso erroneamente in git] (http://stackoverflow.com/questions/8083282/how-do-i-remove-a-big-file-wrongly-committed- in-git) – antlersoft

risposta

8

Utilizzare git rebase -i <commit-id>, dove id è un commit prima del changeset che si desidera rimuovere. Si aprirà una lista di commit tra la testa e il changeset, cancellerà dalla lista il commit desiderato e continuerà. Quando questo commit sarà "staccato", significa che fluttua nel repository finché non viene raccolto. Potresti usare git gc per forzarlo.

Tuttavia, si dovrebbe ricordare che tutti i cloni del repository saranno divergenti, e dovrebbero essere rebased anche dopo di esso.

Problemi correlati