


Un guide de la rébase interactive GIT, avec des exemples pratiques
Feb 10, 2025 pm 03:12 PM
Git Interactive Base Change: Un outil puissant pour améliorer l'efficacité de développement
Le contr?le de version git est devenu standard dans la bo?te à outils des développeurs modernes. Des commandes telles que commit
, push
et pull
sont devenues depuis longtemps la mémoire musculaire. Cependant, relativement parlant, peu de développeurs comprennent les fonctionnalités "plus avancées" dans GIT et l'énorme valeur de ces fonctionnalités! Cet article explorera l'un des outils les plus puissants de Git - "Rebase interactive".
Points de base
- Interactive Rebase est un puissant outil GIT qui permet aux développeurs de créer un historique de validation bien structuré, ce qui rend la base de code des projets plus facile à lire et à comprendre.
- Rebase interactif peut être utilisé pour modifier les anciennes informations de validation, supprimer les commits, fusionner plusieurs engagements, réorganiser les engagements, réparer les anciens engagements et fendre / rouvrir les anciens engagements pour l'édition.
- Il est important de ne pas utiliser la rebase interactive sur les validations qui ont été partagées avec des collègues du référentiel distant, car il réécrira l'historique. Au lieu de cela, vous devez l'utiliser pour nettoyer les commits locaux avant de les fusionner dans la succursale de l'équipe. Les mécanismes de base des opérations de base interactifs incluent l'identification de la partie de l'historique de soumission à utiliser, le démarrage de la session avec la commande
- , puis la spécification de l'action requise dans la fenêtre Open Editor.
git rebase -i
Rebase interactif peut être utilisé pour modifier les anciennes informations de validation, supprimer les validations inutiles et fusionner plusieurs engagements en un, optimisant et nettoyer ainsi l'historique des engagements.
En bref, il n'est pas exagéré de dire que la rebase interactive peut vous aider à devenir un meilleur développeur en vous permettant de créer un historique de validation propre et bien structuré dans votre projet.
Pourquoi un historique de soumission bien structuré est-il important? Imaginez le contraire: un historique de soumission difficile à lire, vous ne savez pas ce que les changements récents de votre collègue ont réellement fait. Il y aura de plus en plus de ?coins sombres? dans des projets comme celui-ci, et vous ne connaissez que la petite partie de votre participation.
Comparez-le avec un historique de validation propre et bien structuré: il aide à rendre la base de code du projet plus lisible et et
plus facile à comprendre. C'est une partie nécessaire d'un programme sain et durable!Que peut faire le changement de base interactif pour vous Interactive Rebase vous aide à optimiser et à nettoyer votre historique de validation. Il couvre de nombreux cas d'utilisation différents, dont certains vous permettent de faire ce qui suit:
- modifier les anciennes informations de soumission
- Supprimer la soumission
- Merger / combiner plusieurs engins
- Réorganiser la soumission
- Correction de l'ancien engagement
- Split / rouvrir vieil valide pour l'édition
Quand utiliser la rébase interactive (et quand pas!)
comme certains autres outils Git, renforcez interactivement "réécriture de l'histoire". Cela signifie que lorsque vous utilisez des opérations de rebase interactives pour faire fonctionner une série de validations, cette partie de l'histoire de la validation sera réécrite par : Le hachage SHA-1 du commit changera. Ce sont de nouveaux objets de validation, pour ainsi dire. Le fait que
nécessite une règle simple mais importante à suivre: n'utilisez pas de réprimandes interactives (ou d'autres outils pour réécrire l'historique) sur les validations que vous avez partagées avec des collègues du référentiel distant. Au lieu de cela, utilisez-le pour nettoyer vos propres commits locaux - par exemple, dans l'une de vos propres branches de fonctionnalités, puis fusionnez-les dans la branche de l'équipe.Mécanisme de base de l'opération de base interactive
Bien que les rebases interactives puissent être utilisées pour de nombreuses choses différentes, leur flux de travail de base est toujours le même. Une fois que vous avez fermement une compréhension de ce mécanisme de base, la rebase interactive perd son atmosphère ?complexe et mystérieuse? et devient un outil précieux et facile à utiliser dans votre bo?te à outils.
étape 1: Où devez-vous commencer la session?
La première question à laquelle vous devez répondre est: "Quelle partie de l'historique des engagements est-ce que je veux opérer?" Donnons un exemple pratique, supposons que nous voulons modifier les anciennes informations de validation (c'est exactement ce que nous allons faire plus tard dans la pratique).Notre situation de départ est montrée dans la figure ci-dessous, nous modifions les anciennes informations de soumission par base de changement interactif.
Afin de pouvoir modifier les informations de validation en C2, nous devons démarrer la session de rébase interactive à son engagement parent (ou plus t?t, si vous préférez). Dans cet exemple, nous utiliserons C1 comme point de départ pour la session Rebase interactive.
Démarrer une session réelle est très simple:
Nous utilisons la commande
avec le drapeau<code>$ git rebase -i HEAD~3</code>(indique que nous voulons vraiment qu'il soit "interactif") et fournissez le validation de base (que nous avons trouvé dans la première étape ci-dessus). Dans cet exemple, j'ai utilisé
pour spécifier un engagement qui "est à la tra?ne derrière la tête de la tête 3 commet". Alternativement, je pourrais également fournir un hachage SHA-1 spécifique. -i
git rebase
étape 3: Dites à Git ce que vous voulez faire HEAD~3
Dans cette étape, deux points doivent être prêts à se présenter à:
- Les soumissions sont répertoriées dans l'ordre inverse! Nous nous attendons à ce que les dernières soumissions qui apparaissent en haut de appara?tront en bas de de la liste. Ne vous inquiétez pas: votre référentiel GIT est intact! ? N'oubliez pas que nous effectuons une opération de base de changement interactive, qui nécessite que Git réapplique des engagements de l'ancien à nouveau à la fin de l'opération. Ne faites pas de modifications réelles dans cette fenêtre d'éditeur! Bien que vous puissiez être tenté de modifier les informations de validation directement dans cette fenêtre d'éditeur (après tout, c'est exactement ce que nous voulons faire ...), vous devez être patient. Ici, nous disons simplement à Git ce que nous voulons faire - plut?t que d'apporter les modifications réelles. Je vais le démontrer bient?t dans la pratique!
- Avec cet aper?u théorique, plongeons ensemble dans certains cas pratiques! modifier les anciennes informations de soumission
L'un des cas d'utilisation les plus populaires pour la rébase interactive est que vous pouvez modifier les anciennes soumissions par la suite. Vous savez peut-être que
vous permet également de modifier les informations soumises - mais cela ne s'applique qu'aux dernières soumissions. Pour tout engagement plus agé que cela, nous devons utiliser la rebase interactive!
Regardons un scénario spécifique. Vous trouverez ci-dessous une image des informations de soumission d'erreur qui doivent être corrigées. git commit --amend
Remarque: Pour une meilleure vue d'ensemble et une visualisation plus claire, j'ai utilisé le client Tower Git Desktop dans certaines captures d'écran. Vous n'avez pas besoin d'une tour pour suivre ce tutoriel.
Notre première étape consiste à déterminer l'engagement de base de cette session de rebase interactive. Puisque nous devons (au moins) revenir à l'engagement parent de notre engagement "Bad Apple", nous utilisons (trois engins derrière les commits de tête, c'est-à-dire le commit intitulé "Changer les titres ...") comme point de départ pour La session:
Après avoir exécuté cette commande, votre éditeur préféré ouvrira et affichera la liste des validations que vous venez de sélectionner (en fournissant un engagement de base).
HEAD~3
<code>$ git rebase -i HEAD~3</code>
Un rappel: Bien que vous puissiez être tenté de le faire, nous ne modifierons pas les informations de soumission ici. Nous utilisons uniquement le "mot-clé d'opération"
pour marquer les lignes correspondantes de. Dans notre cas, nous voulons remplacer le commit (ce qui signifie que nous voulons modifier les informations de la validation, mais garder le reste de l'engagement).
Une fois que vous remplacez le mot-clé standard par votre mot-clé d'action préféré (qui signifie "accepter les validations telles quelles"), vous enregistrez et fermez simplement la fenêtre.
Après cela, une nouvelle fenêtre d'éditeur s'ouvrira avec les informations de validation actuelles. Enfin, nous pouvons faire ce que nous avions prévu de faire au début: modifiez ce vieux message de validation!
Après avoir apporté des modifications et enregistré et fermé la fenêtre de l'éditeur, la session de rebase interactive est terminée - nos informations de soumission ont été mises à jour! ?
Supprimer les soumissions indésirables
Interactive Rebase vous permet également de supprimer Old Commits de l'histoire dont vous n'avez pas besoin (ou ne voulez pas). Imaginez que vous incluez accidentellement un mot de passe personnel dans votre soumission récente: dans la plupart des cas, ces informations sensibles ne doivent pas être incluses dans la base de code.
ces données complètement propres à partir du référentiel! Déterminions d'abord l'engagement de base de la session de rebase interactive. étant donné que nous devons commencer au moins avec la validation du parent du mauvais engagement, nous utilisons la ?structure de balisage d'optimiser ...? comme base:
Veuillez noter que cette fois, j'ai utilisé le hachage SHA-1 spécifique dans la commande
<code>$ git rebase -i HEAD~3</code>. Bien s?r, en plus de Commit Hash, je peux également utiliser
pour gérer cet engagement. git rebase -i
HEAD~2
Après avoir exécuté cette commande, nous reverrons une liste de validation.
Cette fois, nous utilisons le mot-clé
drop
Quoi que vous choisissiez, après avoir enregistré et fermé la fenêtre de l'éditeur, la soumission sera supprimée de votre historique de référentiel!
fusionner plusieurs engins dans un
Un autre cas d'utilisation pour Rebase interactif est lorsque vous souhaitez fusionner plusieurs engins séparésen un. Avant de plonger dans la fa?on de travailler, passons quelques minutes à discuter quand ou pourquoi cela peut être précieux.
D'une manière générale, faire un engagement "plus grand" (en combinant plusieurs engins en un) n'est pas une bonne stratégie dans la plupart des cas. La règle générale est de garder l'engagement aussi petit que possible, car "plus petit" signifie "plus facile à lire et à comprendre". Cependant, dans certains cas, cela a encore du sens. Voici deux exemples:
Supposons que sémantiquement, il est plus logique de fusionner ces deux engagements dans un seul engagement. à l'aide de l'outil Rebase interactif, nous pouvons le faire: Jusqu'à présent, vous vous êtes habitué à ce qui se passe: une fenêtre d'éditeur s'ouvrira avec une liste de soumissions.
. Il y a une chose importante à savoir sur le fonctionnement de Cela explique pourquoi j'ai marqué la ligne 2 avec le mot-clé
J'espère que vous convenez que l'outil de rebase interactif de Git est très précieux! En tant que développeurs, nous devons nous efforcer d'une histoire propre et claire. C'est un facteur clé pour garder la base de code saine et facile à comprendre (pour vos coéquipiers et vous-même, après un certain temps, il s'est écoulé). Si vous voulez en savoir plus, je recommande fortement la "Kit de premiers soins GIT". Il s'agit d'une courte collection de vidéos (gratuite) qui vous montre comment nettoyer et annuler les erreurs dans GIT. Amusez-vous! Git Rebase et Git Merge sont deux fa?ons différentes d'intégrer les changements d'une branche dans une autre. Git Merge est un moyen de combiner directement le code à partir de deux branches différentes. Il crée un nouvel engagement dans l'histoire, préservant l'ordre chronologique des commits. Git Rebase, en revanche, est un moyen de déplacer ou de combiner une série de engagements dans un nouvel engagement de base. C'est comme dire "Je veux ajouter le travail des autres sur mes changements". En d'autres termes, il vous permet de placer des modifications à la branche actuelle sur le dessus d'une autre branche. Si vous souhaitez annuler la rébase Git, vous pouvez utiliser la commande Git Interactive Rebase vous permet de changer de validation de diverses manières, telles que l'édition, la suppression et la compression. Vous pouvez non seulement modifier les informations de validation, mais également modifier le code réel (si vous faites une erreur). Il s'agit d'un outil puissant qui vous donne un contr?le complet sur l'historique de soumission de votre projet. La compression est l'acte de fusionner plusieurs engagements dans un seul engagement. Dans GIT, vous pouvez comprimer l'engagement en utilisant la commande Bien que Git Interactive Rebase soit un outil puissant, il peut être dangereux s'il est mal utilisé. Il réécrit l'histoire de la validation, ce qui peut causer des problèmes si vous avez affaire à une branche publique à laquelle d'autres sont également aux prises. Il est recommandé de l'utiliser sur des succursales locales qui n'ont pas encore été poussées. Les affrontements peuvent se produire pendant le processus de rébase. Git s'arrêtera et vous permettra de résoudre ces conflits avant de continuer. Vous pouvez corriger les modifications contradictoires en modifiant les fichiers, puis utiliser Oui, vous pouvez diviser un engagement en engagements plus petits à l'aide de Git Interactive Rebase. Ceci est très utile si vous apportez plusieurs modifications dans un seul engagement, mais décidez ensuite qu'ils devraient être séparés. Vous pouvez modifier les informations de soumission lors de la rebase interactive. Dans la liste de soumission, remplacez Oui, vous pouvez utiliser Git Interactive Rebase pour modifier l'ordre des validations. Dans la liste des validations, vous pouvez simplement modifier l'ordre des lignes pour modifier l'ordre des commits. Ceci est très utile si vous souhaitez rendre votre histoire de validation plus logique ou plus claire.
Complétons ensemble un exemple pratique et utilisons la situation indiquée dans l'image suivante comme notre situation de départ.
squash
<code>$ git rebase -i HEAD~3</code>
:
squash
dans notre exemple. squash
Après avoir enregistré et fermé cette fenêtre, une nouvelle fenêtre s'ouvrira. En effet, en combinant plusieurs commits, nous créerons bien s?r un nouvel engagement. Et cette soumission nécessite également des informations de soumission, comme toute autre soumission!
squash
Après avoir enregistré et fermé cette fenêtre d'éditeur, nous pouvons dire fièrement: c'était deux commits distincts, mais maintenant c'est un engagement!
Utilisez les fonctions puissantes du changement de base interactif
Git Interactive Change Base FAQ (FAQ)
Quelle est la différence entre Git Rebase et Git Merge?
Comment annuler la rébase Git?
git reflog
pour trouver l'engagement à laquelle vous souhaitez revenir, puis utiliser la commande git reset --hard HEAD@{number}
. La commande git reflog
affiche une liste de chaque modification apportée à la tête, et la commande git reset
vous permet de définir la tête actuelle à l'état spécifié. Quel est le but de Git Interactive Rebase?
Comment utiliser la soumission de compression de base variable interactive GIT?
git rebase -i
suivi par le hachage de la commission à compresser. Dans l'éditeur de texte ouvert, vous pouvez marquer l'engagement que vous souhaitez compresser en rempla?ant pick
par squash
ou s
. Quels sont les risques d'utiliser Git Interactive Rebase?
Comment résoudre les conflits pendant la base de changement Git?
git add
pour ajouter des fichiers résolus pour résoudre les conflits. Une fois que tous les conflits sont résolus, vous pouvez continuer à modifier la base en utilisant git rebase --continue
. Puis-je utiliser Git Interactive Change Base pour diviser l'engagement?
Comment modifier les informations de soumission à l'aide de la base de changement interactive GIT?
pick
par reword
ou r
pour marquer la soumission à modifier. Lorsque vous continuez, Git ouvrira un éditeur de texte pour chaque soumission marquée reword
, vous permettant de modifier les informations de soumission. Quelle est la différence entre Git Rebase et Git Pull?
Git pull
est une commande qui prend des modifications d'un référentiel distant et les fusionne dans la branche actuelle. D'un autre c?té, Git rebase
est une commande qui déplace ou combine une série de validations dans un nouvel engagement de base. Bien que les deux commandes soient utilisées pour les modifications d'intégration, elles sont effectuées différemment. Puis-je utiliser Git Interactive Rebase pour modifier l'ordre des validations?
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

La principale préoccupation concernant les grandes technologies expérimentant l'intelligence artificielle (IA) n'est pas qu'elle pourrait dominer l'humanité. Le vrai problème réside dans les inexactitudes persistantes des modèles de grands langues (LLM) tels que le chatppt d'Open AI, les Gémeaux de Google et

Plus l'intelligence artificielle plus avancée (AI) devient, plus elle a tendance à "halluciner" et à fournir des informations fausses ou inexactes. Selon la recherche par Openai, ses modèles de raisonnement les plus récents et puissants - O3 et O4-MINI - ont exhibés H

La National Crime Agency (NCA) du Royaume-Uni a arrêté quatre personnes soup?onnées de participation aux cyberattaques ciblant les marques et Spencer (M&S), Co-Op et Harrods., selon une déclaration, les suspects incluent deux hommes de 19 ans, un 17 ans-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-On

Les modèles de raisonnement de l'intelligence artificielle (IA) ne sont pas aussi capables qu'ils apparaissent. En réalité, leur performance se décompose complètement lorsque les taches deviennent trop complexes, selon les chercheurs d'Apple.Reassinging Models comme Anthropic's Claude, Open

La cryptographie post-quantum est devenue une priorité absolue pour les dirigeants de la cybersécurité, mais des recherches récentes indiquent que certaines organisations ne traitent pas la menace avec la gravité qu'il exige.

Les attaques de ransomwares apportent avec eux un co?t de récupération moyen de 4,5 millions de dollars, selon une récente enquête, qui a également révélé qu'un nombre important d'entreprises ont été affectés par le malware au cours de la dernière année.

Red Hat a introduit une nouvelle plate-forme en libre-service con?ue pour offrir un accès plus facile à son programme de développeurs.

Investir dans un nouveau site Web ou une plate-forme numérique est essentiel pour toute entreprise. Que vous lanciez une startup, que vous reconstruisiez un site hérité ou que vous prolongez votre portée avec un nouveau magasin de commerce électronique, l'équipe que vous choisissez pour donner vie à votre vision peut faire ou
