2017-01-14 2 views
2

je l'ai fait quelque chose comme:git: comment gérer au début de branchement

  y1-y2-y3-y4-y5 
     /  /
x1-x2-x3   /
     \  /
      z1-z2-z3 

Mais maintenant, je veux avoir des changements de y1 et y2 également dans z2 et les les prochains.

z3 a déjà fusionné en Y5.

Ce que nous voulons réaliser est quelque chose comme:

  y1-y2-y3-y4-...- throw away 
     / \  
x1-x2-x3  \  
     \  \ 
      z1-z2-z3-z4- continue work with changes from y1&y2 

Comment régler ce problème?

  1. cerise choisir
  2. sur z3: fusion git y2? (Sur la fusion z3 semble fonctionner.)
  3. quelque chose d'autre

Quelques infos supplémentaires:

Le repo existe sur 3 serveurs. (Aucun excès de réseau permanent possible) Chaque clone accède à toutes les télécommandes de temps en temps. En cas d'utilisation rebase je crains certains effets secondaires.

+0

Je voudrais juste 'y1 cerise pick', y2 – artm

+0

Si ce phénomène est commun, vous devriez probablement changer votre flux de travail git d'utiliser quelque chose de plus adapté à ce que vous voulez réellement accomplir –

+0

@JoePhillips: non, cela est le résultat d'une branche qui ne bugfix peut être utilisé comple tely. Mais la première partie du travail est utile et devrait être fusionnée maintenant. – Klaus

Répondre

1

La commande rebase était en fait la base pour cela.

Actuellement, votre branche est basée à x3 et que vous souhaitez déplacer sa base y2 si

git checkout z 
git rebase y2 

https://git-scm.com/book/en/v2/Git-Branching-Rebasing

Pour plus d'exemples

+0

Est-ce sûr si plusieurs contrôles existent déjà? Quelque chose de spécial si repo est cloné sur plusieurs serveurs. Je crains un peu pour rebase. J'ai eu beaucoup de travail par un "rebasement presque parfait" dans le passé :-) – Klaus

+0

@klaus Vous n'avez pas fourni assez de détails pour savoir si c'est sûr. Vous ne mentionnez rien sur l'utilisation des fourches ou si vous voulez fusionner dans une branche entière ou juste un commit ou deux ici et là –

+0

@JoePhillips: Toutes les télécommandes ont le même contenu et sont en réalité synchronisées. La branche que je veux fusionner/rebaser/... est une ligne linéaire de commits, mais la branche concurrente a été fusionnée quelques fois avec celle qui devrait maintenant être fusionnée ... ahh oui: je vais mettre à jour ma question pour obtenir un meilleur image. – Klaus