C'è un modo per eliminare alcuni file dalla cronologia di Git?
-
01-07-2019 - |
Domanda
Ho migrato un paio di progetti da Subversion a Git.Funziona davvero bene, ma quando clono il mio repository, è molto lungo perché ho tutta la cronologia di molti file .jar inclusi nel trasferimento.
Esiste un modo per mantenere solo l'ultima versione di un determinato tipo di file nel mio repository principale.Voglio principalmente eliminare la vecchia versione sul file binario.
Soluzione
Puoi rimuovere le vecchie versioni con "git rebase" -i o "git filter-branch"
http://schacon.github.com/git/git-filter-branch.html
http://schacon.github.com/git/git-rebase.html
Altri documenti e tutorial:http://git-scm.com/documentation
Da ora in poi non è supportato mantenere solo la versione corrente.La tua scommessa migliore è invece mantenere nel controllo della revisione un piccolo script che scarica (o crea o genera altrimenti) il file .jar di grandi dimensioni.
Poiché ciò modifica la cronologia, renderà non validi tutti i cloni o i pull precedenti da questo repository.
Altri suggerimenti
In breve, ciò comporterebbe la riscrittura dell'intero albero dei commit git per escludere i file.Hai provato a utilizzare git gc
E git pack
fare in modo che Git comprima il tuo repository?