Ho commesso alcuni dati binari di grandi dimensioni in alcuni commit. Da allora ho aggiornato il mio .gitignore, e quei file non sono più impegnati. Ma mi piacerebbe tornare ai vecchi commit e sottrarre selettivamente questi dati dal repository, rimuovendo un paio di directory che avrebbero dovuto essere in .gitignore. Non voglio rimuovere i commit da soli.Elimina dati binari da un repository git dopo il fatto
Come potrei fare per realizzare questo? Il mio metodo preferito sarebbe un modo per applicare retroattivamente le regole .gitignore ai vecchi commit ... una risposta che usa questo metodo sarebbe anche abbastanza utile per gli altri, dal momento che sono sicuro che il mio problema non sia unico. Sarebbe anche rapido da applicare a una soluzione generale, senza molte personalizzazioni specifiche per la struttura di directory unica di ciascun utente.
È possibile, sia il modo semplice che suggerisco sopra, o in qualche modo più complicato?
Vedere [git: per sempre rimuovere file o cartelle dalla cronologia] (http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/) e [Rimuovi file binari di grandi dimensioni dal repository] (https://groups.google.com/forum/#!topic/github/ghXxynyhj0o). Dovrebbero aiutare. – marcog
Googling per 'git remove file from history' avrebbe risolto il tuo problema. A proposito, la ridefinizione di una modifica a .gitignore nella cronologia iniziale e quindi applicare in qualche modo retroattivamente il .gitignore a tutti i commit probabilmente non aiuterà molto, perché a volte i file ignorati vengono intenzionalmente archiviati e non si vorrebbe perdere quelli. –