Vidéo : Fusionner ou rebaser : choisissez avec un graphique
La vidéo est lue dans le lecteur YouTube, en mode de confidentialité améliorée.
- 6 minutes de vidéo
- Narration en anglais · English and Arabic légendes
- Regarder sur YouTube
Exécutez une fusion et un rebase à partir de deux copies identiques de la même divergence, comparez les deux graphiques, les parents et les arborescences de fichiers, et apprenez la règle qui les départage : qui d'autre a déjà vos commits.
Lire la leçon complète
L'article présente toutes les étapes et commandes de la vidéo, l'exercice pratique et les questions.
Transcription vidéo
La narration de la vidéo, repère par repère.
- Fusionner ou rebaser ? Le même travail peut partir deux histoires différentes.
- Nous exécuterons les deux à partir du même départ pointer et comparer.
- Votre branche a un commit. La mise à jour la branche en a une autre.
- Les deux sont nés du même commit, donc ni l'un ni l'autre contient l'autre.
- Tout d'abord, préparez la divergence et faites deux exemplaires identiques.
- Un test équitable nécessite les mêmes références et fichiers dans les deux exemplaires.
- Voici le premier exemplaire. Nous fusionnerons dans celui-ci.
- Et c'est le deuxième exemplaire. Nous le gardons intact pour le rebase.
- Cliquez avec le bouton droit sur update-main et choisissez son Commande de fusion.
- Sous Enregistrer sous, choisissez Toujours une fusion commettre.
- Choisissez Fusionner une fois et attendez le vrai résultat.
- Le nouveau commit a deux parents : votre commit, puis update-main's.
- Maintenant le deuxième exemplaire. Il y a encore les deux commits originaux.
- Cliquez à nouveau avec le bouton droit sur update-main et choisissez Rebase cette fois.
- La boîte de dialogue nomme la branche et le cible. Laissez les deux options désactivées.
- Rebase une fois. Git rejoue votre commit sur haut de la page principale mise à jour.
- Le commit rejoué a un nouveau parent, donc il obtient un nouvel identifiant.
- L'ancien commit n'est pas perdu : le sauvetage la branche le pointe toujours.
- Comparez maintenant les fichiers. La page est la pareil dans les deux exemplaires.
- Il en va de même pour la note d’intégration. Mêmes fichiers, histoire différente.
- Regardez les deux graphiques : un diamant avec un commit de fusion et une ligne droite.
- Alors lequel devriez-vous utiliser ? Demande à qui d'autre a vos engagements.
- Si d'autres en ont, fusionnez. Un rebasement réécrire leur histoire.
- Si les commits sont privés, le rebase est sûr et donne une ligne droite.
- Ni l’un ni l’autre n’améliore votre code. La règle est une question de propriété.
- Maintenant, prouvez-le dans le terminal. Premièrement, le parents de chaque astuce.
- Trois identifiants pour la copie de fusion : le commit, et ses deux parents.
- Deux identifiants pour la copie de rebase : le commit, et c'est un parent.
- Puis les arborescences de fichiers : un identifiant, imprimé deux fois. Mêmes fichiers.
- Mais les deux identifiants de validation diffèrent. Égal des arbres, des histoires différentes.
- Modifiez l'entrée : supposons que votre branche ait aucun engagement propre.
- Une fusion par défaut effectuerait alors une avance rapide, sans validation de fusion.
- Ne rebasez jamais une branche que quelqu'un d'autre l'a déjà fait.
- Si les arbres diffèrent, comparez les arbres de départ les réfs en premier.
- Ne supprimez pas un résultat pour forcer les deux à correspondre.
- Pratique : signaler les parents, les pièces d'identité et les arbres à partir de vos propres copies.
- Ensuite, réorganisez, écrasez et reformulez votre engagements locaux.