Je travaille sur la branche C qui est basée sur la branche B, puis sur la branche A:
A---B---C
Y a-t-il des commandes qui peuvent créer la branche C directement basée sur la branche A comme ceci:
A --- B
\
--C
J'ai essayé git rebase A mais cela ne fonctionne pas.
3 Réponses :
Voici ce que je ferais:
git checkout C git checkout -b rebaseTemp git rebase -i A
Dans le rebase interactif, supprimez tous les commits qui correspondent à la branche B, mais ne font pas partie de la branche C (c'est-à-dire les commits qui sont partagés entre les deux). Complétez le rebase, puis vous aurez une nouvelle branche (rebaseTemp) qui contient ce que je pense que vous voulez. Vous pouvez ensuite fusionner A dans rebaseTemp (ce qui entraînera une fusion rapide).
Un outil de visualisation de branche (c'est-à-dire gitk ) est vraiment utile pour ce scénario, vous peut voir quels commits sont partagés.
Git a une option intégrée pour rebase qui fait exactement cela:
git checkout C git rebase --onto A B
Cela a rebasé tous les commits après B jusqu'à C de sorte qu'ils commencent le A au lieu de B.
git rebase --onto TargetBranchToRebaseTo UpstreamBranch BranchToRebase