J'ai récemment eu un question answered sur une configuration de développement git multi-ordinateur, et la solution que j'ai trouvée a résolu ma situation avec la branche master
, mais pas les branches secondaires basées sur le maître.synchronisation git de branches rebasées
Voici ma configuration actuelle:
A--B--C--D master
\
E--F--G--H BUG_37
BUG_37
est une branche qui développe une solution à un bogue tracked en option pour une demande de fonctionnalité dans le système, et finiront par être fusionnés dans la ligne principale, mais est séparé pour le moment. Avec le dépôt dans cet état, une seule machine, j'ai fait quelques changements à la branche master
:
A--B--C--D--I--J--K master
\
E--F--G--H BUG_37
Je Rebasé alors la branche BUG_37
sur master
, pour assurer qu'il fonctionne comme une amélioration des changements les plus courants: Disons que rebase avait quelques conflits qui devaient être corrigés manuellement avant que le rebasage ne soit définitif. Si je transfère ces modifications vers un référentiel distant et que je souhaite maintenant effectuer des modifications sur un autre système de développement ayant encore l'installation d'origine, quelle est la meilleure façon de le faire? git pull --rebase
se déroulera rebasage à nouveau, et je vais devoir aller manuellement à travers les conflits je suis passé par la première fois, non? Et si je fais une petite erreur en passant par les conflits à nouveau, de sorte que E1-H1 sont légèrement différentes dans ce nouveau système, je vais le dépôt encore plus désynchronisés. Comment puis-je mettre un référentiel local dans l'état d'origine et le référentiel distant dans le troisième état et que le référentiel local soit mis à jour pour correspondre exactement au référentiel distant (la fonction de vidage change EH et déplace le HEAD de BUG_37
vers le nouveau emplacement)?