Ho un repository in cui vivono molti file binari di grandi dimensioni. È possibile impostare git per far sì che mantenga solo l'ultimo n numero di commit? Come voglio mantenere solo le ultime 5 copie di file in questa storia del repository? Ma mi piacerebbe molto non farlo manualmente ogni 5 commit?Mantenere un certo numero di commit nella cronologia usando git
risposta
Utilizzare "git rebase --interactive". Segna i primi cinque commit come "pick" e il resto come "squash".
quando viene estratto da altri repository che dovrebbe anche sincronizzare, sì? –
Le directory clonate dovranno estrarre la cronologia completa completa ogni volta che si cambia la cronologia, quindi un 'git fetch' da un repository clonato potrebbe richiedere del tempo - ma sì, si sincronizzeranno. – Bombe
Kindasorta. git clone --depth N
ti permetterà di fare un "clone superficiale" del repository. Tuttavia, non puoi eseguire il push/clone/fetch da questo, quindi non è molto utile come sviluppatore.
lo so, ma non voglio conservare più di 5 copie nei repository, non solo nei cloni. –
Questo non è possibile, dovrai riscrivere il repository come suggerisce @Dustin. Ti suggerisco di rivalutare come vuoi memorizzare questi file enormi. Forse Git non è la soluzione migliore. –
L'unico modo per farlo è quello di riscrivere periodicamente il repository.
Un commit contiene un hash dei metadati di commit, le informazioni di commit, i genitori del commit e l'albero che si sta impegnando. Non è possibile cambiare qualcosa in passato senza influenzare il presente.
Come ha detto Dustin, l'unico modo per farlo è quello di riscrivere periodicamente il repository. Git non ha sicuramente un supporto "incorporato" per questo, né è probabile che abbia tale supporto in tempi brevi (il design fondamentale del genere di cose preclude questa funzionalità). Ciò significa che se vuoi farlo, dovrai farlo manualmente.
Se si vuole fare un tentativo, la risposta a this question mostra un esempio di come questo può essere fatto usando git filter-branch
.
- 1. Git - Rimuovi commit dalla cronologia
- 2. Ripara cronologia git con commit duplicati
- 3. Mantieni cronologia dei commit dopo un 'git merge'
- 4. Numero di commit in un repository git
- 5. Cambia indirizzo email nella cronologia Git
- 6. Come inserisco un commit usando git?
- 7. Numero di commit sul ramo in git
- 8. Leggi l'ultimo commit del git e il numero di commit
- 9. Come cercare nella cronologia di un repository git per trovare un errore di fusione?
- 10. Come posso cancellare tutti i commit prima di una determinata data nella cronologia Git?
- 11. Copia un repository git senza cronologia
- 12. Rimozione di commit Git su un ramo
- 13. Numero di rilascio Jira nel messaggio di commit Git
- 14. come eliminare tutta la cronologia del commit in github?
- 15. Numero di commit tra due commit
- 16. Git - mostra la cronologia di un file?
- 17. Clonazione di un repository Git in un nuovo repository - senza cronologia commit
- 18. Arresta un commit git da parte di un autore specifico usando il gancio di pre-commit
- 19. sposta un commit nella parte superiore di tutti i commit
- 20. git commit -m vs. git commit -am
- 21. github: Come cancelleresti tutti i commit da un certo username
- 22. cronologia git di una riga di sorgente
- 23. Uso ripetuto di git-filter-branch per riscrivere nuovi commit
- 24. Eliminazione di tutti i commit in una succursale dopo un certo commit
- 25. Come estrarre un file con cronologia del commit da un repository git con index-filter & co
- 26. Come visualizzare i commit completi durante il monitoraggio della cronologia di un singolo file in Git?
- 27. Come eliminare git-notes commit?
- 28. Combina locale Git commit in un commit per git-svn
- 29. riscrittura efficiente (rebase -i) un sacco di cronologia con git
- 30. Utilizzo di TortoiseGit cancellando tutto dopo un certo commit
Ne dubito, ma mi piace l'idea. –