Table des matières
Série avancée GIT:
Comprendre Git Merges
Les engagements humains vs fusifères
Intégrer à la rebasing
Rebasing: un guide étape par étape
Les pièges potentiels de repasing
Stratégies d'intégration: fusionner vs rebase
Maison interface Web tutoriel CSS Rebase vs Merge: Intégration des changements dans GIT

Rebase vs Merge: Intégration des changements dans GIT

Mar 18, 2025 pm 12:09 PM

Rebase vs Merge: Intégration des changements dans GIT

Cet article poursuit notre série "Advanced Git". Suivez-nous sur Twitter ou abonnez-vous à notre newsletter pour des mises à jour sur les futurs articles!

La ramification GIT efficace est cruciale pour les développeurs. Mon article précédent a détaillé les stratégies de branchement, le modèle de branchement de Git, les types de branches et les flux de travail communs. L'avantage central: les espaces de travail isolés (branches) améliorent considérablement le contrôle des versions.

Cet article se concentre sur l'intégration des branches - fusionnant efficacement le code dans la ligne de développement principale. Nous explorerons deux méthodes clés: la fusion et la rebasses.

git merge et git rebase résolvent le même problème: l'intégration des changements d'une branche dans une autre. Cependant, leurs approches diffèrent considérablement. Examinons la fusion en premier.

Série avancée GIT:

  • Partie 1: Création de l'engagement Git idéal
  • Partie 2: Optimisation des stratégies de ramification GIT
  • Partie 3: rationalisation de la collaboration avec les demandes de traction
  • Partie 4: Résoudre efficacement les conflits de fusion
  • Partie 5: Rebase vs Merge ( vous êtes ici! )
  • Partie 6: Master Interactive Rebase
  • Partie 7: La cueillette des cerises s'engage à Git
  • Partie 8: Utiliser le réflog pour récupérer les engins perdus

Comprendre Git Merges

La commande git merge intègre les branches. Imaginez branch-B avec de nouveaux engins; fusionner dans branch-A :

 <code>$ git checkout branch-A $ git merge branch-B</code>
Copier après la connexion

Cela crée un nouveau engagement de fusion sur branch-A , reliant les deux histoires de branche. Git identifie trois commits clés:

  • L' ancêtre commun: le point où les deux branches partageaient le code identique avant de diverger.
  • Les points de terminaison de la succursale: le dernier s'engage sur chaque branche, représentant leurs états actuels.

Git combine ces engagements pour atteindre l'intégration. Un scénario simplifié (où branch-A n'a pas de validation depuis la ramification) se traduit par une fusion "rapide" - ajoutant efficacement directement branch-B .

Cependant, dans la plupart des scénarios du monde réel, les deux branches ont évolué indépendamment. Git crée ensuite un engagement de fusion à combiner les modifications, un engagement distinct généré automatiquement, contrairement aux engagements créés par les développeurs. Comprendre cette fusion automatique nécessite d'analyser les histoires complètes des branches.

Les engagements humains vs fusifères

Les engagements créés par les développeurs sont soigneusement structurés, contenant des modifications connexes et des messages informatifs. Merger Commits, inversement, connectez automatiquement les branches, ne représentant pas nécessairement un ensemble de modifications sémantiquement cohérentes.

Intégrer à la rebasing

Rebasing offre une alternative à la fusion. Ce n'est pas intrinsèquement "mieux", juste différent. Vous pouvez gérer avec succès Git uniquement avec la fusion. Cependant, la compréhension de la rebasing offre des options précieuses.

Rebasing évite les engagements de fusion automatique, créant un historique de projet linéaire, éliminant les traces de divergence des branches.

Rebasing: un guide étape par étape

Rebase branch-B dans branch-A :

 <code>$ git checkout branch-A $ git rebase branch-B</code>
Copier après la connexion

Le processus implique trois étapes:

  1. La suppression temporaire des engagements: engage sur branch-A après que l'ancêtre commun soit temporairement stocké.
  2. L'application des engagements de branch-B : les engagements de branch-B sont appliqués, alignant temporairement les deux branches.
  3. Rebasing branch-A Commits: Les engins branch-A temporairement stockés sont réappliqués au-dessus des validations de branch-B , créant une histoire linéaire.

Le résultat: une histoire rationalisée sans fusion s'engage.

Les pièges potentiels de repasing

Surtout, les réécritures rebasées commettent l'histoire. Bien que le contenu reste le même, le parent de la commission change, générant un nouveau hachage SHA-1.

Ceci est acceptable pour les commits non publiés. Cependant, la rebasing Publié Commits est risqué, perturbant potentiellement les collaborateurs qui ont basé leur travail sur les commits originaux.

La règle d'or: ne réprimande jamais les succursales publiques! Utilisez la rebasse localement pour nettoyer votre historique avant de vous intégrer dans des branches partagées.

Stratégies d'intégration: fusionner vs rebase

La fusion et la rebasses sont deux outils précieux. La fusion préserve l'histoire de destructive. Rebasing rationalise l'histoire mais nécessite une prudence concernant les commits publiés.

Explorez mon "kit Git Advanced Git" gratuit pour des informations plus approfondies sur les outils Git.

Bonne fusion et rebasse! Rendez-vous dans le prochain épisode "Advanced Git"!

Série avancée GIT:

  • Partie 1: Création de l'engagement Git idéal
  • Partie 2: Optimisation des stratégies de ramification GIT
  • Partie 3: rationalisation de la collaboration avec les demandes de traction
  • Partie 4: Résoudre efficacement les conflits de fusion
  • Partie 5: Rebase vs Merge ( vous êtes ici! )
  • Partie 6: Master Interactive Rebase
  • Partie 7: La cueillette des cerises s'engage à Git
  • Partie 8: Utiliser le réflog pour récupérer les engins perdus

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Dead Rails - Comment apprivoiser les loups
3 Il y a quelques semaines By DDD
Blue Prince: Comment se rendre au sous-sol
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1653
14
Tutoriel PHP
1251
29
Tutoriel C#
1224
24
Fontes variables de polices Google Fontes variables de polices Google Apr 09, 2025 am 10:42 AM

Je vois que Google Fonts a déployé un nouveau design (tweet). Comparé à la dernière grande refonte, cela semble beaucoup plus itératif. Je peux à peine faire la différence

Comment créer un compte à rebours animé avec HTML, CSS et JavaScript Comment créer un compte à rebours animé avec HTML, CSS et JavaScript Apr 11, 2025 am 11:29 AM

Avez-vous déjà eu besoin d'un compte à rebours sur un projet? Pour quelque chose comme ça, il pourrait être naturel d'atteindre un plugin, mais c'est en fait beaucoup plus

Guide des attributs de données HTML Guide des attributs de données HTML Apr 11, 2025 am 11:50 AM

Tout ce que vous avez toujours voulu savoir sur les attributs de données dans HTML, CSS et JavaScript.

Comment sélectionner un élément enfant avec l'élément de nom de première classe via CSS? Comment sélectionner un élément enfant avec l'élément de nom de première classe via CSS? Apr 05, 2025 pm 11:24 PM

Lorsque le nombre d'éléments n'est pas fixé, comment sélectionner le premier élément enfant du nom de classe spécifié via CSS. Lors du traitement de la structure HTML, vous rencontrez souvent différents éléments ...

Pourquoi les zones réduites pourpre dans la disposition Flex sont-elles considérées à tort «espace de débordement»? Pourquoi les zones réduites pourpre dans la disposition Flex sont-elles considérées à tort «espace de débordement»? Apr 05, 2025 pm 05:51 PM

Questions sur les zones de slash violet dans les dispositions flexibles Lorsque vous utilisez des dispositions flexibles, vous pouvez rencontrer des phénomènes déroutants, comme dans les outils du développeur (D ...

Une preuve de concept pour rendre Sass plus rapidement Une preuve de concept pour rendre Sass plus rapidement Apr 16, 2025 am 10:38 AM

Au début d'un nouveau projet, la compilation SASS se produit en un clin d'œil. Cela se sent bien, surtout quand il est associé à BrowSersync, qui recharge

Comment nous avons créé un site statique qui génère des modèles tartan dans SVG Comment nous avons créé un site statique qui génère des modèles tartan dans SVG Apr 09, 2025 am 11:29 AM

Le tartan est un chiffon à motifs qui est généralement associé à l'Écosse, en particulier leurs kilts à la mode. Sur tartanify.com, nous avons rassemblé plus de 5 000 tartan

See all articles