Leçon 9 · Travail quotidien
Créez une branche de fonctionnalités et retirez uniquement la référence jetable
Ajoutez des cartes de flux de travail sur les cartes de fonctionnalités/tarifications tout en gardant le principal inchangé. Renommez une branche jetable et supprimez-la seulement après avoir prouvé que sa validation est déjà accessible depuis main.
- Niveau: Débutant
- 10 minutes de lecture
- 3 minutes de vidéo
- Mis à jour
- Avant cette leçon: Lire l'historique sans bouger la TÊTE
Progression enregistrée dans ce navigateur.
La lecture charge la vidéo depuis YouTube (mode de confidentialité amélioré).
Ce que vous apprendrez
- Séparez la création d’un nom de branche de son extraction.
- Validez la section de workflow sur une fonctionnalité sans déplacer main.
- Renommez/supprimez une référence locale jetable sans inventer de fusion.
- Distinguer les vérifications de suppression sécurisée natives de la suppression protégée de GitTree.
Avant de commencer
Vous commencez là où la leçon 8 s'est terminée : main contient les cinq validations documentées, une arborescence de travail et un index propres, CSS-02-WORKING validé et pas de télécommande. Gardez la distribution générée ignorée. La vidéo a été enregistrée avec Git 2.52.0 et GitTree 2.0 sur Ubuntu 24.04 : les branches ont été créées, renommées, supprimées et commutées dans l'application, le fichier y a été enregistré et validé, et les vérifications du terminal ont été exécutées par rapport à ce que l'application a créé, ou par rapport à des copies distinctes pour les états de création uniquement et renommé. Rien n'a été exécuté sur macOS ou Windows, et Ubuntu est le seul système Linux enregistré. Le minimum inspecté de GitTree est Git 2.39.0. Une fois connecté, la branche locale est sur le plan gratuit et ne nécessite aucun hôte ni Pro/essai.
Toutes les mutations de branche ci-dessous sont written steps for the isolated GitTree Features demo, jamais d'instructions pour créer une branche sur ce site Web. La branche source de l'auteur reste inchangée.
Concept
Une branche est un nom local mobile pour un commit, pas une copie de chaque fichier. Créer un nom seul ne fait pas bouger la TÊTE. La commutation attache HEAD à cette branche et met à jour les fichiers d'index/de travail si nécessaire. Une validation ultérieure avance uniquement la branche extraite. Sémantique de branche native, sémantique de changement.
Au départ, les noms principaux H5. Une branche jetable créée à H5 ajoute une deuxième étiquette au même cercle, pas un autre commit. Renommer change l'étiquette. La suppression de cette étiquette déjà accessible ne supprime pas l'historique principal. Les cartes de fonctionnalités/tarifications ultérieures commencent à H5 et passent à F1 ; les séjours principaux H5. Aucune télécommande n'est créée ou supprimée.
Le git branch -d natif vérifie la fusion (normalement par rapport au HEAD en amont/actuel). GitTree's inspected local deletion adapter uses -D after protecting the selected tip in its trash/journal. It is not the same refusal rule. Ne supposez jamais que l'application arrêtera une suppression non fusionnée simplement parce que native -d l'a fait. Dans ce cours, nous prouvons que l'embout jetable est un ancêtre du principal before either path, conservez la fonctionnalité et ne sélectionnez jamais d'action de suppression à distance.
Fichier de fonctionnalités complet
Seul index.html change sur la fonctionnalité. Remplacez-le par le HTML-03 complet ; le style/scripts/historique existant reste exactement tel que la leçon 8 les a laissés. Le nom de la branche thématique est littéral, mais la section ne contient aucun prix ni promotion.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>GitTree Features — course demo</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="site-header">
<a href="#main">GitTree Features</a>
</header>
<main id="main">
<section class="hero" aria-labelledby="hero-title">
<p class="eyebrow">GitTree Learn demo project</p>
<h1 id="hero-title">See your work clearly.</h1>
<p id="hero-copy">Choose one change, then check what Git saved.</p>
</section>
<section class="features" aria-labelledby="features-title">
<h2 id="features-title">Follow your work</h2>
<div class="cards">
<article class="feature-card">
<h3>History</h3>
<p>Read commits and branches together.</p>
</article>
<article class="feature-card">
<h3>Changes</h3>
<p>Review the exact content selected for a commit.</p>
</article>
<article class="feature-card">
<h3>Recovery</h3>
<p>Inspect the scope of a recovery point before using it.</p>
</article>
</div>
</section>
<section aria-labelledby="plans-title">
<h2 id="plans-title">Choose the workflow you need</h2>
<div class="cards">
<article class="feature-card">
<h3>Local Git</h3>
<p>Local Git workflows work without signing in.</p>
</article>
<article class="feature-card">
<h3>Connected workflows</h3>
<p>Provider integrations and Nour require Pro or an applicable trial.</p>
</article>
</div>
</section>
</main>
<footer><p>Built by a fictional team for GitTree Learn.</p></footer>
<script type="module" src="site.js"></script>
</body>
</html>Dans GitTree
- Confirmez que l'original est sur principal, propre, lors de la validation du document d'historique. Ouvrez Command Palette… (Commande/Ctrl+Maj+P) → Create Branch… (
repo.branch.create). Attendez-vous à Create a branch at HEAD. - Définissez Branch name =
practice/rename-me. Uncheck Check out the new branch. Choisissez Create Branch. Attendez-vous à la nouvelle référence au même commit pendant que le principal reste extrait. - Dans la liste des succursales locales, cliquez avec le bouton droit sur Practice/Rename-me → Rename practice/rename-me…. Dans Rename practice/rename-me, définissez le nom de la branche sur
practice/renamed, puis sur Rename. Attendez-vous à ce que l'ancien nom soit absent, le nouveau nom au même bout ; aucun changement de fichier. - Dans le terminal, prouvez la condition d'ancêtre ci-dessous. Ensuite, faites un clic droit sur Pratique/Renommé → Delete practice/renamed…. Vérifiez Delete practice/renamed in gittree-features?, assurez-vous que seule la référence locale est ciblée, puis Delete practice/renamed. Annulez si le nom/le conseil diffère. La source promet une entrée de journal ou de corbeille avant la mutation, pas une restauration à distance ; capturez l'opération/la preuve réelle avant d'appeler cela éprouvé à l'exécution.
- Palette Créer une branche… encore une fois, nommez
feature/pricing-cards, laissez Check out the new branch coché, puis Créer une branche. Attendez-vous à ce que la fonctionnalité soit vérifiée au même H5. Cette case à cocher permet à l'opération de créer un commutateur and, contrairement à l'étape 2. - Afficher les fichiers (Commande/Ctrl+Shift+E), focus index.html et Entrée. Remplacez son texte de travail par HTML-03 complet et Save (Commande/Ctrl+S). Ne mettez pas en scène la distribution générée.
- Retour à Graphique → palette Show Working Changes. Consultez index.html et utilisez Stage File. Résumé
feat: add workflow cards; options ordinaires désactivées ; Commit Changes to 1 File / Commande/Ctrl+Entrée une fois. - Cliquez avec le bouton droit sur main dans la liste des succursales locales → Checkout main. Attendez-vous au héros de l’ère du document sans section de flux de travail et sans travail propre. Cliquez avec le bouton droit sur les cartes de fonctionnalités/tarifications → Checkout feature/pricing-cards pour revenir ; sa section réapparaît car l'arborescence validée de la branche diffère.
- Si une boîte de dialogue de commutateur sale apparaît, Cancel et inspectez votre travail réel. Les points de commutation canoniques sont propres ; ne choisissez pas une option de rejet correspondant au film.
- Terminez sur les cartes de fonctionnalités/tarifications. Confirmez que main a cinq commits et que la fonctionnalité a un commit supplémentaire. Faites not fusionnez-le encore ou supprimez-le pour obtenir un graphique unifilaire.
Les actions contextuelles sur les références nommées ne sont pas des commandes de palette génériques sans arguments. La palette de niveau supérieur Créer une branche… est une action distincte de HEAD actuelle. Utilisez les véritables étiquettes de menu ; les raccourcis directs par défaut pour créer/changer de branche ne sont pas inventés.
Dans la borne
Equivalent natif, à l'entrée principale propre ; ne répétez pas les mutations après le succès de l'application :
git branch practice/rename-me
git symbolic-ref --short HEAD
git branch -m practice/rename-me practice/renamed
git merge-base --is-ancestor practice/renamed mainLes vérifications de branche/renommage/ancêtre ont été sans succès ; impressions de référence symbolique :
mainLa sortie 0 de la requête ancêtre prouve que cet embout jetable est déjà accessible. Un résultat différent de zéro signifie arrêter ; ne remplacez pas la suppression forcée.
git branch --delete --quiet practice/renamed
git switch --quiet --create feature/pricing-cardsTous deux réussirent en silence. Après avoir enregistré le HTML-03 complet :
git add -- index.html
git commit --quiet -m "feat: add workflow cards"
git switch --quiet mainTous ont réussi silencieusement le montage. Cet interrupteur principal ne déplace pas la fonctionnalité réf.
Refus natif intentionnel, alors que main est extrait :
git -c advice.forceDeleteBranch=false branch -d feature/pricing-cardsStderr observé, sortie 1 :
error: the branch 'feature/pricing-cards' is not fully mergedLa fonctionnalité demeure. Do not attempt this as an app safety test: sa politique de suppression protégée diffère. Ne remplacez pas -d par -D pour « corriger » la leçon.
Retourner et inspecter :
git switch --quiet feature/pricing-cards
git symbolic-ref --short HEAD
git branch --format='%(refname:short)'
git rev-list --count main..feature/pricing-cards
git log --format=%s main..feature/pricing-cards
git diff --name-only main feature/pricing-cards
git rev-list --count main
git status --shortSorties observées après le commutateur silencieux, dans l'ordre :
feature/pricing-cards
feature/pricing-cards
main
1
feat: add workflow cards
index.html
5Le statut court final est vide avec la sortie 0. Les deux noms jetables sont absents. Aucune sortie distante n'existe car aucune n'a été configurée.
Résultat
À la fin de cette leçon : les cartes de fonctionnalités/tarifications ont été extraites et nettoyées, une fonctionnalité validée au-delà de la principale ; main reste au point de contrôle du document à cinq validations. Les cartes de workflow ne contiennent aucun prix. Branches jetables absentes. Aucune action de fusion, de branche distante, publiée ou de fournisseur.
Erreurs courantes
- Compter les étiquettes de branche comme commits.
- En supposant que la création uniquement ait déplacé HEAD.
- Renommer la branche source-web active au lieu de la référence démo.
- Croire que la suppression de l'application a la garde native de -d.
- Suppression de la fonctionnalité utile pour simplifier le graphique.
Si quelque chose ne va pas
Les noms invalides/en double doivent garder la boîte de dialogue ouverte avec la valeur saisie. Lisez l'erreur ; ne résolvez pas l'ambiguïté liée à la casse en renommant les références non liées. Si des travaux bloquent un interrupteur, annulez-le et conservez-le ; les leçons ultérieures de cache/commit offrent des choix délibérés. Une branche extraite dans un autre arbre de travail ne peut pas être simplement supprimée.
Un refus natif non fusionné est protecteur. L'instantané de pré-mutation de l'application est un mécanisme différent, et non l'autorisation d'ignorer l'accessibilité ou l'identité du conseil. Une mutation échouée ne doit pas être présentée comme un succès simplement parce qu’une étiquette a temporairement disparu d’une vue filtrée.
Vérifiez votre compréhension
Répondez à chaque question, puis lisez pourquoi. Les questions marquées « Obligatoire » comptent pour terminer la leçon.
0 sur 6 corrects
Répondez correctement aux questions requises pour terminer la leçon.
Vérifié dans ce navigateur.
Pratique
Afficher le principal inchangé et la fonctionnalité validée à l'avance. Entrée modifiée : si l'extraction de la nouvelle branche est off, prédisez que HEAD reste principale jusqu'à un changement explicite. Testez dans une rediffusion jetable séparée, sans modifier le point de contrôle terminé. Expliquez pourquoi le refus natif ne prouve pas un refus d'application.
Votre propre confirmation : le site ne peut pas voir votre ordinateur.
Pour terminer la leçon, répondez correctement aux questions demandées et confirmez l'exercice pratique.
Récapitulatif
- Les noms de branches et les commits sont des objets différents.
- Les fonctions de création uniquement et de création et de commutation ont des effets HEAD différents.
- Prouver la portée et l’accessibilité de la suppression ; la suppression d'application protégée et l'option -d native diffèrent.
En rapport
Termes du glossaire introduits
Branche — فرع; commutateur — تبديل; réf — مرجع; accessible — قابل للوصول; en amont — فرع متتبَّع; arbre de travail — مجلد العمل.
Transcription vidéo
La narration de la vidéo, repère par repère.
Afficher la transcription
- Créer une branche de fonctionnalités tout en préservant le plat principal.
- Un nouveau nom de branche fait pas créer de commit.
- Créer le jetable nom sans quitter main.
- Confirmez que la création uniquement vous n'avez pas changé de succursale.
- Renommez la référence jetable, pas la branche source du site Web.
- Vérifiez l'embout jetable actuel est déjà accessible depuis main.
- Supprimer uniquement les éléments pré-cochés référence jetable.
- La suppression protégée de GitTree est pas de refus de suppression sécurisée natif.
- Cette fois, créez le fonctionnalité et vérifiez-la.
- Enregistrer la section workflow sans prix ni promotions.
- Revoir celle de la fonctionnalité fichier modifié avant de valider.
- Engagez-vous sur la fonctionnalité, pas sur la principale.
- Uniquement la branche extraite avance avec ce commit.
- La commutation sélectionne l’arborescence validée de main.
- La suppression native sécurisée refuse la fonctionnalité non fusionnée.
- Ce refus ne prouve pas GitTree refusera la même suppression.
- Revenir à la fonctionnalité contenu du fichier enregistré.
- Vérifiez une validation de fonctionnalité et seul le point d'index H T M L a changé.
- Main a encore cinq commits et la fonctionnalité est propre.
- Une fois le paiement désactivé, le nouveau nom existe mais HEAD reste sur main.
- Annuler un interrupteur sale inattendu et inspectez d'abord le travail.
- Un pourboire local protégé n'est pas un promesse de restauration à distance.
- Conservez la fonctionnalité utile et vérifiez les noms jetables ont disparu.
- La leçon suivante présente télécommandes; aucun n’était nécessaire ici.