J'ai un référentiel où vivent beaucoup de fichiers binaires volumineux. Est-ce éventuellement défini sur Git pour que cela ne conserve que le dernier nombre de commits? Telle que je veux seulement garder les 5 derniers exemplaires de fichiers de cet historique de référentiel? Mais j'aimerais très ne pas le faire manuellement tous les 5 commits? P>
4 Réponses :
KindaSorta. Git Clone --Depth n Code> vous permettra de faire un "clone peu profond" du référentiel. Cependant, vous ne pouvez pas appuyer / cloner / extraire de cela, donc ce n'est pas très utile en tant que développeur. P>
Je sais à ce sujet, mais je ne veux pas non plus conserver plus de 5 copies en non des repos, pas seulement des clones.
Ce n'est pas possible, vous devrez réécrire le référentiel car @Dustin suggère. Je vous suggère de réévaluer comment vous voulez stocker ces énormes fichiers. Peut-être que Git n'est pas la meilleure solution.
Le seul moyen de faire est de réécrire périodiquement le référentiel. P>
Un commit contient un hachage des métadonnées de validation, de l'information de validation, du ou des parents de la Biggie et de l'arbre que vous vous engagez. Il n'est pas possible de changer quelque chose dans le passé sans affecter le présent. P>
Comme Dustin mentionné, la seule façon de le faire est de réécrire périodiquement le référentiel. Git n'a certainement pas de soutien "intégré" pour cela, et il n'est probablement probablement pas un tel soutien à tout moment (la conception fondamentale de la chose qui exclut cette fonctionnalité). Cela signifie que si vous voulez le faire, vous allez devoir le faire manuellement. P>
Si vous voulez essayer, la réponse à filtre-filtre-branche code>. p>
Utilisez "Git Rebase --interactive". Marquer les cinq premiers commits comme "choisissez" et le reste comme "squash". P>
Lorsqu'il est tiré d'autres repos qui synchroniseraient également, oui?
Les annuaires clonés devront tirer la totalité de l'historique modifié à chaque fois que vous modifiez l'historique, donc un git fetch code> d'un référentiel cloné peut prendre un certain temps - mais oui, ils seront synchronisés.
J'en doute, mais j'aime l'idée.