OK, je pensais que c'était un simple scénario git, qu'est-ce qui me manque?
J'ai une mastersuccursale et une featuresuccursale. Je fais un peu de travail master, d'autres feature, puis d'autres encore master. Je me retrouve avec quelque chose comme ça (l'ordre lexicographique implique l'ordre des commits):
A--B--C------F--G (master)
\
D--E (feature)
Je n'ai aucun problème à git push origin mastermaintenir la télécommande à masterjour, ni à git push origin feature(lorsqu'elle est activée feature) de maintenir une sauvegarde à distance pour mon featuretravail. Jusqu'à présent, nous sommes bons.
Mais maintenant, je veux rebaser featureau-dessus des F--Gcommits sur master, donc moi git checkout featureet git rebase master. Encore bon. Maintenant nous avons:
A--B--C------F--G (master)
\
D'--E' (feature)
Problème: au moment où je veux sauvegarder le nouveau featureramifié avec branchement git push origin feature, le push est rejeté car l'arborescence a changé en raison du rebasage. Cela ne peut être résolu qu'avec git push --force origin feature.
Je déteste utiliser --forcesans être sûr d'en avoir besoin. Alors, en ai-je besoin? Le rebasage implique- t-il nécessairement que le prochain pushsoit --forcecomplet?
Cette branche de fonctionnalité n'est partagée avec aucun autre développeur, donc je n'ai aucun problème de facto avec la poussée de force, je ne vais pas perdre de données, la question est plus conceptuelle.