Maison >interface Web >tutoriel CSS >La cueillette des cerises s'engage à 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!
Dans le dernier épisode, nous avons exploré le rebasing et la fusion. Bien que subtilement différent, git merge
et git rebase
servent le même objectif fondamental: intégrer les changements d'une branche dans une autre.
Cet article se concentre sur git cherry-pick
, une commande puissante permettant l'intégration sélective des validations individuelles de toute branche dans votre tête actuelle. Cela contraste fortement avec git merge
et git rebase
, qui intègrent tous les nouveaux engins de la branche source.
Pourquoi appliquer sélectivement un seul engagement? Un cas d'utilisation clé est de corriger les erreurs. Imaginez votre engagement accidentellement dans la mauvaise branche. cherry-pick
simplifie le correctif: Passez à la branche correcte et à Cherry-Cick the Errant Commit.
Un mot de prudence: évitez la relâche sur cherry-pick
. Les workflows au niveau de la branche, facilités par git merge
et git rebase
, sont généralement préférés. cherry-pick
est un outil précieux pour des situations spécifiques, pas un remplacement pour la fusion ou la repasion standard.
Considérez ce scénario: un engagement destiné à la succursale feature/newsletter
a atterri par erreur dans master
. La capture d'écran de tour suivante (une interface graphique Git pour macOS et Windows) illustre cela, mettant en évidence la validation 26bf1b48
mal placée dans master
:
Alternativement, la ligne de commande révèle le problème:
$ git journal Commissez 26BF1B4808BA9783E4FABB19EC81E7A4C8160194 (Head -> Master) Auteur: Tobias Günther Date: ven 5 octobre 09:58:03 2018 0200 Page d'inscription à la newsletter
Commit 26bf1b48
appartient à feature/newsletter
. Utilisons cherry-pick
pour le déplacer:
$ git cocher la fonctionnalité / newsletter Chassé à la succursale «fonctionnalité / newsletter» $ statut git Sur la fonctionnalité / newsletter de la succursale Rien à commettre, le travail des arbres qui travaillent $ git ceriry-pick 26bf1b48 [Fonction / newsletter 7FB55D0] Page d'inscription de newsletter Auteur: Tobias Günther Date: ven 5 octobre 09:58:03 2018 0200 1 fichier modifié, 0 insertions (), 0 suppressions (-) Créer le mode 100644 SIGNUP.html
git log
montre désormais le commit dans feature/newsletter
:
$ git journal Commit 7FB55D06A8E70FDCE46921A8A3D3A9DE7F7FB8D7 (Head -> Feature / Newsletter) Auteur: Tobias Günther Date: ven 5 octobre 09:58:03 2018 0200 Page d'inscription à la newsletter
Remarque: cherry-pick
crée une copie de l'engagement, laissant l'original intact.
La validation "incorrecte" reste en master
. git reset
le supprime:
$ maître de paiement Changé de succursale «maître» $ git réinitialisation - Tête dure ~ 1 La tête est maintenant à 776f8ca Modifier sur le titre et la page d'erreur de suppression
L'interface graphique de Tower visualise tout ce processus.
Priorisez merge
ou rebase
chaque fois que possible. Réservez cherry-pick
pour les situations où elles ne sont pas adaptées, en particulier pour le déplacement des engins individuels. N'oubliez pas que git cherry-pick
Duplicats s'engage; Nettoyez toujours par la suite.
Explorez mon "kit Git avancé" gratuit pour des plongées plus profondes dans les outils GIT, y compris les stratégies de ramification, la rébase interactive, le réflog et les sous-modules.
Happy Cherry-cicking, et à voir dans le prochain épisode "Advanced Git"!
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!