Vous avez dit que vous ne considéreriez pas l'historique, il n'y a donc rien d'autre à dire...
Mais en fait, Rebase n'a aucune contrainte de direction. Vous pouvez rebaser Master sur votre branche, ou vice versa, rebaser n'importe quelle branche sur n'importe quelle cible.
Essentiellement, Merge ignore les différences dans les enregistrements historiques des deux arbres et ne fusionne les différences qu'au moment de l'exécution de Merge ; tandis que Rebase consiste à trier les différences dans les enregistrements historiques des deux arbres, puis à fusionner. .
Vous pouvez visualiser la mémoire :
Fusionner signifie "fusionner en un seul" (notez que j'ai dit "et", pas "deux", car Fusionner ne fusionne pas seulement deux parties)
Rebase signifie "Placez-vous en dessous de moi, je me tiendrai au-dessus de vous et enfin fusionnerai."
Par exemple, j'ai séparé une branche de master et effectué des commits basés sur celle-ci. À ce moment, il y a également de nouveaux commits par d'autres sur master. Si je fusionne master sur la nouvelle branche, un nouveau commit apparaîtra sur ma branche, enregistrant la combinaison de mes modifications et celles de master. C'est comme si deux lignes fusionnaient en une seule. Si je rebase, à partir du point où je me suis détaché, les nouveaux commits sur master sont remplis en premier, puis mes propres commits sont réécrits en plus des mises à jour. Le contenu est donc toujours fusionné, mais l'historique est séquentiel De votre point de vue, c'est comme s'il n'avait jamais été séparé du maître.
Vous avez dit que vous ne considéreriez pas l'historique, il n'y a donc rien d'autre à dire...
Mais en fait, Rebase n'a aucune contrainte de direction. Vous pouvez rebaser Master sur votre branche, ou vice versa, rebaser n'importe quelle branche sur n'importe quelle cible.
Essentiellement, Merge ignore les différences dans les enregistrements historiques des deux arbres et ne fusionne les différences qu'au moment de l'exécution de Merge ; tandis que Rebase consiste à trier les différences dans les enregistrements historiques des deux arbres, puis à fusionner. .
Vous pouvez visualiser la mémoire :
Par exemple, j'ai séparé une branche de master et effectué des commits basés sur celle-ci. À ce moment, il y a également de nouveaux commits par d'autres sur master. Si je fusionne master sur la nouvelle branche, un nouveau commit apparaîtra sur ma branche, enregistrant la combinaison de mes modifications et celles de master. C'est comme si deux lignes fusionnaient en une seule. Si je rebase, à partir du point où je me suis détaché, les nouveaux commits sur master sont remplis en premier, puis mes propres commits sont réécrits en plus des mises à jour. Le contenu est donc toujours fusionné, mais l'historique est séquentiel De votre point de vue, c'est comme s'il n'avait jamais été séparé du maître.