OK, je pensais que c'était un simple scénario git, qu'est-ce qui me manque?
J'ai une master
succursale et une feature
succursale. 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 master
maintenir la télécommande à master
jour, ni à git push origin feature
(lorsqu'elle est activée feature
) de maintenir une sauvegarde à distance pour mon feature
travail. Jusqu'à présent, nous sommes bons.
Mais maintenant, je veux rebaser feature
au-dessus des F--G
commits sur master, donc moi git checkout feature
et 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 feature
ramifié 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 --force
sans être sûr d'en avoir besoin. Alors, en ai-je besoin? Le rebasage implique- t-il nécessairement que le prochain push
soit --force
complet?
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.