J'ai coupé l'histoire de ma branche master
dans une branche old_stuff
, via les conseils de ce Q & A: How do I remove the old history from a git repository?. Pour vous éviter un clic, le processus consiste à greffer la dernière validation de master
à la validation racine, sans lui donner de parent, puis à utiliser git filter-branch
pour rendre ce changement permanent. Mon dépôt local est maintenant comment il devrait être, avec une courte branche master
et une longue branche de l'histoire.Git pousser les modifications apportées par branche de filtre
Mais si je git clone
le référentiel, ce commit qui ne devrait pas avoir de parent a le même parent qu'avant. Quand je fais git push -f origin master
, je finis avec une branche master
avec le commit nouvellement créé à sa tête, mais avec un parent de la validation préalable à master
. Donc maintenant j'ai une longue branche old_stuff
et une branche master
qui est aussi longue qu'une validation. Si c'est pertinent, la télécommande est sur Github.
Comment puis-je dire au référentiel distant et aux autres copies de réviser le parent pour la nouvelle validation? PS: J'ai lu les avertissements sur la façon dont la modification de l'historique d'un référentiel partagé brise les copies d'autres personnes. Je connais les noms des personnes impliquées et je peux leur demander d'accommoder, alors je suis à l'aise pour réviser l'historique de la succursale dans le cas présent.
Merci, cela a fonctionné pour ma situation, et avec beaucoup moins d'agitation que la méthode de greffe et de filtrage. –