2012-12-19 4 views
0

J'ai codé une fonctionnalité limitée dans le temps qui a été fusionnée en tant que maquette et envoyée en production. Maintenant que le temps est écoulé, je voudrais supprimer les commits contenant la fonctionnalité de la base de code.Git rebase - supprime quelques validations qui ont été transférées vers un référentiel distant

Habituellement, je voudrais faire un git rebase -i et supprimer les commits.

Cependant, ces validations ont déjà été transférées vers le référentiel distant, donc quand je rebase localement et que j'essaie de pousser la branche, je reçois des plaintes sur la façon dont la pointe de ma branche est derrière.

Existe-t-il un moyen de générer un "nouveau commit" à partir d'une rebase, pour annuler les validations que je ne veux pas? Je ne me soucie pas vraiment d'avoir un historique de commit "propre", tout moyen de sauvegarder ces commits serait génial.

Répondre

1

Vous devez git push --force votre branche vers n'importe quelle télécommande, car par défaut, push refuse de réécrire l'historique.

0

Si vous voulez juste vous débarrasser de la fonctionnalité (mais pas l'historique de la fonctionnalité) et que tout est contenu dans quelques commits spécifiques (qui n'affectent pas les autres fonctionnalités) alors git revert pourrait être votre réponse.

Cette option n'est pas toujours utilisable (par exemple, les validations peuvent inclure d'autres fonctionnalités que vous ne voulez pas supprimer) ou vous pouvez avoir des raisons impérieuses de vouloir supprimer toute trace de la fonctionnalité, mais c'est un commande pratique pour être au courant de.

Questions connexes