Lorsque vous êtes un peu nouveau avec Git (et DVCS en général), et que vous commencez à explorer les modifications de réécriture de l'historique, vous êtes en sécurité si le référentiel n'est que local, mais vous pouvez rencontrer des problèmes si vous travaillez avec des télécommandes et essayez de pousser de tels changements.
Une fonctionnalité que j'attendrais est la possibilité d'activer un "mode sans échec" qui m'empêcherait essentiellement de faire tout ce que je ne devrais pas faire ... Et qu'est-ce que je veux dire par là? Je veux dire des changements de réécriture de l'histoire pour des choses déjà poussées à une origine. Je ne peux pas le définir précisément, mais cela inclurait des cas tels que:
commit --amend
quand HEAD a déjà été poussérebase
d'une succursale non localereset
d'une branche qui a été poussée
Ce sont des exemples de situations qui feront probablement push
échouer le prochain (car ce ne serait pas une avance rapide, IIRC). J'ai fait une partie de cela par accident et j'ai dû recréer la branche sur la télécommande. Et j'ai quand même eu la chance de le faire assez rapidement pour que personne ne tire l'histoire que j'ai réécrite.
Je pense qu'il est possible d'identifier ce type de modifications et, à la demande, d'empêcher l'utilisateur de les effectuer. Y a-t-il peut-être une option pour cela?
S'il n'y en a pas, pensez-vous qu'il vaut la peine d'essayer de le créer? Souhaitez-vous essayer de définir précisément comment identifier un tel «changement dangereux»?
--force
.