Il mio file .git è cresciuto fino a 229 Mb e mi chiedo quale sia il modo migliore per ridimensionare le dimensioni. Conosco git gc e lo sto usando molto bene. Non sono completamente sicuro di come funziona git, ma so che ci sono informazioni impacchettate che non ho più bisogno. Ad esempio, so che non ho più bisogno dei primi cinque rami salvati. C'è un modo per cancellare completamente rami o commit davvero vecchi o qualcosa del genere?Gestione delle dimensioni del file .git
risposta
Se si desidera mantenere il vostro (raggiungibile) impegna la storia intatto, poi scadono, richiuderla, prugna, e la spazzatura raccogliere:
git reflog expire --expire=0 --all
git repack -ad
git prune
git gc
questa dovrebbe essere la dimensione minima è possibile ottenere la repo e mantenere la vostra storia di commettere.
In caso contrario, se si desidera o non si mente di ricominciare da capo con lo stato corrente del repository come commit iniziale, l'approccio di Peter Tillemans lo farà.
Il modo più semplice sarebbe quella di fare un
git clone --depth 1 your_old_repo
su una nuova posizione e poi scambiare al suo posto.
vedi anche git faq
Il clone poco profondo ha funzionalità limitate, sfortunatamente. –
Avete alcune tecniche in "Reduce git repository size", ma menziono anche in esso di git gc
alone can increase the size of the repo!
Quindi alcuni ramo di filtro (indicato anche in that question) può essere necessario, se nessuno sta prelevando attivamente dal repository.
Un fattore che tende ad aumentare rapidamente la dimensione di un repository Git è il controllo di versione di troppi binari. È uno dei Git limits, quindi cerca di:
- versione così grande oggetto nel proprio Git repo, riferimento come sottomoduli
- o loro versione in un repository esterno in spedizione, come un repository Maven (cioè " non in un repository Git ")
- 1. git - gestione del contenuto congelato
- 2. Riduzione delle dimensioni del file App iOS
- 3. Calcolo delle dimensioni del backup del DB
- 4. Riduzione delle dimensioni del file PNG in .NET
- 5. Aggiunta delle dimensioni del file dell'elenco Get-ChildItem
- 6. Gestione delle chiavi SSH all'interno di Jenkins per Git
- 7. Gestione delle dipendenze delle promesse
- 8. Lettura delle dimensioni del layout all'avvio dell'applicazione
- 9. Gestione delle dipendenze nei repository git (usando i sottomoduli)
- 10. Gestione delle dipendenze delle formiche
- 11. Gestione di file di grandi dimensioni in Haskell
- 12. AngularJS: Gestione delle dipendenze
- 13. Python Gestione delle eccezioni
- 14. ProgressDialog: modifica delle dimensioni del testo
- 15. Android: Riduzione delle dimensioni del pulsante
- 16. Gestione git hook
- 17. Bitmap dimensioni intestazione del file
- 18. Gestione delle dipendenze JavaScript
- 19. Ottieni dimensioni delle dimensioni nell'array
- 20. Stato della gestione delle dipendenze del progetto Android
- 21. gestione di file di grandi dimensioni in svnsync
- 22. Gestione di molti repository git
- 23. Logstash: gestione di messaggi di grandi dimensioni
- 24. Come ridurre le dimensioni del repository Git su Bitbucket?
- 25. Come calcolare le dimensioni del file audio?
- 26. DDD, gestione delle dipendenze
- 27. Gestione delle eccezioni crittografiche
- 28. BackgroundWorker gestione delle eccezioni
- 29. Python: Queue.Empty Gestione delle eccezioni
- 30. Area di gestione temporanea di Git Inverti
Questo sembra un buon approccio, grazie! – DavidP6
'git gc' esegue automaticamente' git prune', come menzionato in questa pagina di documentazione, sotto l'esempio: https://www.kernel.org/pub/software/scm/git/docs/git-prune.html – kontur