Lección 9 · trabajo diario
Cree una rama de funciones y retire solo la referencia desechable
Agregue tarjetas de flujo de trabajo en tarjetas de características/precios manteniendo la principal sin cambios. Cambie el nombre de una rama desechable y elimínela solo después de demostrar que ya se puede acceder a su confirmación desde principal.
- Nivel: principiante
- 10 minutos de lectura
- 3 minutos de vídeo
- Actualizado
- Antes de esta lección: Leer el historial sin mover la CABEZA
Progreso guardado en este navegador.
La reproducción carga el vídeo de YouTube (modo de privacidad mejorada).
lo que aprenderás
- Separe la creación de un nombre de sucursal de la verificación.
- Confirme la sección de flujo de trabajo en una función sin mover la principal.
- Cambiar el nombre/eliminar una referencia local desechable sin inventar una fusión.
- Distinga las comprobaciones nativas de eliminación segura de la eliminación protegida de GitTree.
Antes de empezar
Comienza donde terminó la lección 8: principal tiene las cinco confirmaciones documentadas, un árbol de trabajo e índice limpios, CSS-02-WORKING comprometido y sin control remoto. Mantenga ignorada la dist generada. El video se grabó con Git 2.52.0 y GitTree 2.0 en Ubuntu 24.04: las ramas se crearon, cambiaron de nombre, eliminaron y cambiaron en la aplicación, el archivo se guardó y confirmó allí, y las verificaciones del terminal se ejecutaron con lo que creó la aplicación, o con copias separadas para los estados de solo creación y renombrado. No se ejecutó nada en macOS o Windows, y Ubuntu es el único sistema Linux registrado. El mínimo inspeccionado de GitTree es Git 2.39.0. Una vez que haya iniciado sesión, la sucursal local está en el plan gratuito y no necesita host ni Pro/prueba.
Todas las mutaciones de rama a continuación son written steps for the isolated GitTree Features demo, nunca instrucciones para bifurcar el pago de este sitio web. La rama fuente del autor permanece sin cambios.
Concepto
Una rama es un nombre local móvil para una confirmación, no una copia de cada archivo. Crear un nombre por sí solo no mueve HEAD. El cambio adjunta HEAD a esa rama y actualiza los archivos de índice/trabajo según sea necesario. Una confirmación posterior avanza solo la rama extraída. Semántica de rama nativa, semántica de cambio.
Al principio, nombres principales H5. Una rama desechable creada en H5 agrega una segunda etiqueta al mismo círculo, no otra confirmación. Cambiar el nombre cambia la etiqueta. Eliminar esa etiqueta ya accesible no elimina el historial principal. Las tarjetas de características/precios posteriores comienzan en H5 y avanzan a F1; estancias principales H5. No se crea ni elimina ningún control remoto.
El git branch -d nativo comprueba la fusión (normalmente en relación con el HEAD ascendente/actual). GitTree's inspected local deletion adapter uses -D after protecting the selected tip in its trash/journal. It is not the same refusal rule. Nunca asuma que la aplicación detendrá una eliminación no fusionada solo porque lo hizo nativo -d. En este curso, demostramos que la punta desechable es un antepasado de before either path principal, mantenemos la función y nunca seleccionamos una acción de eliminación remota.
Archivo de funciones completo
Sólo index.html cambia en la función. Reemplácelo con el HTML-03 completo; El estilo/guiones/historia existentes permanecen exactamente como los dejó la lección 8. El nombre de la sucursal del tema es literal, pero la sección no contiene precios ni promociones.
<!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>En GitTree
- Confirme que el original esté en principal, limpio, en la confirmación del documento histórico. Abra Command Palette… (Comando/Ctrl+Mayús+P) → Create Branch… (
repo.branch.create). Espere Create a branch at HEAD. - Establezca Branch name =
practice/rename-me. Uncheck Check out the new branch. Elija Create Branch. Espere el nuevo árbitro en el mismo compromiso mientras el principal permanece desprotegido. - En la lista de sucursales locales, haga clic derecho en practicar/renombrarme → Rename practice/rename-me…. En Rename practice/rename-me, establezca el nombre de la sucursal en
practice/renamedy luego en Rename. Espere que el nombre anterior esté ausente, el nombre nuevo en la misma punta; sin cambios de archivos. - En la terminal, demuestre la condición ancestral a continuación. Luego haga clic derecho en practicar/renombrar → Delete practice/renamed…. Revise Delete practice/renamed in gittree-features?, asegúrese de que solo se oriente a la referencia local, luego Delete practice/renamed. Cancele si el nombre/consejo difiere. La fuente promete una entrada de diario/basura previa a la mutación, no una restauración remota; capture la operación/evidencia real antes de llamarla probada en tiempo de ejecución.
- Paleta Crear rama… nuevamente, nombre
feature/pricing-cards, deje Check out the new branch marcado y luego Crear rama. Espere que la función se desproteja en el mismo H5. Esta casilla de verificación hace que la operación cree el interruptor and, a diferencia del paso 2. - Mostrar archivos (Comando/Ctrl+Shift+E), enfoque index.html y Enter. Reemplace su texto de trabajo con HTML-03 completo y Save (Comando/Ctrl+S). No coloque en escena la distorsión generada.
- Volver a Gráfico → paleta Show Working Changes. Revise index.html y use Stage File. Resumen
feat: add workflow cards; opciones ordinarias desactivadas; Commit Changes to 1 File / Comando/Ctrl+Intro una vez. - Haga clic derecho en main en la lista de sucursales locales → Checkout main. Espere al héroe de la era de los documentos sin sección de flujo de trabajo y trabajo limpio. Haga clic derecho en tarjetas de características/precios → Checkout feature/pricing-cards para regresar; su sección reaparece porque el árbol comprometido de la rama es diferente.
- Si aparece un cuadro de diálogo de cambio sucio, Cancel e inspecciona tu trabajo real. Los puntos de cambio canónicos están limpios; no elija una opción de descarte que coincida con la película.
- Finalice en tarjetas de características/precios. Confirmar que principal tiene cinco confirmaciones y la función tiene una confirmación adicional. not combínelo todavía o elimínelo para obtener un gráfico de una sola línea.
Las acciones de contexto en referencias con nombre no son comandos de paleta genéricos sin argumentos. La paleta de nivel superior Crear rama... es una acción HEAD actual separada. Utilice etiquetas de menú reales; Los atajos directos predeterminados para crear/cambiar ramas no se inventan.
en la terminal
Equivalente nativo, en la entrada principal limpia; no repita las mutaciones después del éxito de la aplicación:
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 mainLas comprobaciones de sucursal/cambio de nombre/ancestro no tuvieron éxito; impresiones de referencia simbólica:
mainLa salida 0 de la consulta de antepasado demuestra que ya se puede acceder a esta punta desechable. Un resultado distinto de cero significa detenerse; no sustituya la eliminación forzada.
git branch --delete --quiet practice/renamed
git switch --quiet --create feature/pricing-cardsAmbos lo lograron en silencio. Después de guardar HTML-03 completo:
git add -- index.html
git commit --quiet -m "feat: add workflow cards"
git switch --quiet mainTodos triunfaron silenciosamente en el encuentro. Este interruptor principal no mueve la característica ref.
Rechazo nativo intencional, mientras principal está desprotegido:
git -c advice.forceDeleteBranch=false branch -d feature/pricing-cardsStderr observado, salida 1:
error: the branch 'feature/pricing-cards' is not fully mergedLa característica permanece. Do not attempt this as an app safety test: su política de eliminación protegida es diferente. No reemplace -d con -D para "arreglar" la lección.
Devolver e inspeccionar:
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 --shortSalidas observadas después del interruptor silencioso, en orden:
feature/pricing-cards
feature/pricing-cards
main
1
feat: add workflow cards
index.html
5El estado corto final está vacío con salida 0. Ambos nombres desechables están ausentes. No existe ninguna salida remota porque no se configuró ninguna.
Resultado
Al final de esta lección: tarjetas de características/precios revisadas y limpias, una característica confirmada más allá de la principal; main permanece en el punto de control de documentos de cinco compromisos. Las tarjetas de flujo de trabajo no contienen precio. Faltan ramas desechables. Sin fusión, remota, sucursal publicada o acción de proveedor.
Errores comunes
- Contando etiquetas de sucursales como confirmaciones.
- Suponiendo que HEAD se haya movido solo para crear.
- Cambiar el nombre de la rama web fuente activa en lugar de la referencia de demostración.
- Creer que la eliminación de la aplicación tiene la guardia nativa -d.
- Eliminando la característica útil para simplificar el gráfico.
Si algo sale mal
Los nombres no válidos/duplicados deben mantener el cuadro de diálogo abierto con el valor ingresado. Lea el error; no resuelva la ambigüedad de solo casos cambiando el nombre de referencias no relacionadas. Si el trabajo bloquea un interruptor, cancélelo y consérvelo; lecciones posteriores de almacenamiento/compromiso ofrecen opciones deliberadas. Una rama extraída de otro árbol de trabajo no se puede simplemente eliminar.
Un rechazo nativo no fusionado es protector. La instantánea previa a la mutación de la aplicación es un mecanismo diferente, no un permiso para ignorar la accesibilidad o la identidad de la sugerencia. Una mutación fallida no debe presentarse como exitosa simplemente porque una etiqueta desapareció temporalmente de una vista filtrada.
Comprueba tu comprensión
Responda cada pregunta y luego lea por qué. Las preguntas marcadas como "Obligatorias" cuentan para completar la lección.
0 de 6 correcto
Responda correctamente las preguntas requeridas para completar la lección.
Comprobado en este navegador.
Practica
Mostrar principal sin cambios y la característica una vez confirmada. Entrada modificada: si Verificar la nueva rama es off, predecir que HEAD seguirá siendo principal hasta que se realice un cambio explícito. Pruebe en una repetición desechable separada, sin alterar el punto de control finalizado. Explique por qué el rechazo nativo no prueba el rechazo de la aplicación.
Su propia confirmación: el sitio no puede ver su computadora.
Para completar la lección, responde correctamente a las preguntas requeridas y confirma el ejercicio práctico.
Resumen
- Los nombres de las ramas y las confirmaciones son objetos diferentes.
- Crear solo y crear y cambiar tienen diferentes efectos HEAD.
- Demostrar el alcance y la accesibilidad de la eliminación; la eliminación de aplicaciones protegidas y la -d nativa difieren.
Relacionado
Términos del glosario introducidos
Sucursal — فرع; cambiar — تبديل; ref—مرجع; accesible — قابل للوصول; aguas arriba — فرع متتبَّع; árbol de trabajo — مجلد العمل.
Transcripción del vídeo
La narración del vídeo, cue a cue.
Mostrar la transcripción
- Crear una rama de características conservando el principal.
- Un nuevo nombre de sucursal no crear una confirmación.
- Crea el desechable nombre sin salir de main.
- Confirma que solo crear no cambió de sucursal.
- Cambie el nombre de la referencia desechable, no la rama fuente del sitio web.
- Verifique la punta desechable actual ya es accesible desde main.
- Eliminar solo lo premarcado referencia desechable.
- La eliminación protegida de GitTree es No rechazo nativo de eliminación segura.
- Esta vez, crea el función y compruébalo.
- Guarde la sección de flujo de trabajo sin precios ni promociones.
- Revisa la característica archivo modificado antes de confirmar.
- Comprométete con la función, no con la principal.
- Sólo la sucursal registrada avanza con este compromiso.
- El cambio selecciona el árbol comprometido de main.
- Se rechaza la eliminación segura nativa la característica no fusionada.
- Esa negativa no prueba GitTree rechazará la misma eliminación.
- Volver a la característica contenidos del archivo grabado.
- Verifique una característica confirmada y sólo el punto índice H T M L cambió.
- Main todavía tiene cinco confirmaciones y la característica está limpia.
- Con el pago desactivado, el nuevo nombre existe pero HEAD permanece en main.
- Cancelar un cambio sucio inesperado e inspeccionar el trabajo primero.
- Una propina local protegida no es un promesa de restauración remota.
- Mantenga la característica útil y verifique los nombres desechables se han ido.
- La siguiente lección presenta controles remotos; aquí no se necesitaba ninguno.