J'ai bien peur de ne rien trouver de tel que ce scénario particulier.
J'ai un référentiel git avec beaucoup d'histoire: 500+ branches, 500+ balises, remontant à la mi-2007. Il contient environ 19 500 commits. Nous aimerions supprimer tout l'historique avant le 1er janvier 2010, pour le rendre plus petit et plus facile à gérer (nous conserverions une copie complète de l'historique dans un référentiel d'archives).
Je connais le commit que je veux être devenu la racine du nouveau dépôt. Je ne peux cependant pas trouver le bon git mojo pour tronquer le dépôt pour commencer avec ce commit. Je devine une variante de
git filter-branch
impliquant des greffes serait nécessaire; il pourrait également être nécessaire de traiter chacune des branches 200+ que nous voulons garder séparément puis patcher de nouveau le repo ensemble (quelque chose que je ne sais comment faire).
Quelqu'un a-t-il déjà fait quelque chose comme ça? J'ai git 1.7.2.3 si cela compte.
git filter-branch --tag-name-filter cat -- --all
pour mettre à jour les balises. Mais j'ai également des balises plus anciennes pointant vers l'ancienne histoire que je veux supprimer. Comment puis-je me débarrasser de toutes ces anciennes balises? Si je ne les supprime pas, l'historique plus ancien ne disparaît pas et je peux toujours le voir avecgitk --all
.