Saltar al contenido
GitTree

Lección 7 · trabajo diario

Confirme el fragmento seleccionado, no todo el archivo

Prepare un titular y un héroe más amplio y deje una edición separada del radio de la tarjeta para más adelante. Utilice deliberadamente la selección de archivos, fragmentos y líneas, luego pruebe el CSS exacto preparado y restante.

Progreso guardado en este navegador.

La reproducción carga el vídeo de YouTube (modo de privacidad mejorada).

Narración en inglés · English and Arabic subtítulos

Abre la página del vídeoVer en YouTube

lo que aprenderás

  • Elija alcance de archivo, fragmento o línea para una confirmación específica.
  • Seleccione ambas líneas eliminadas/agregadas para un reemplazo.
  • Lea el índice y los contenidos de trabajo de forma independiente.
  • Conserve la edición del radio no comprometido para la lección 8.

Antes de empezar

Comienza donde terminó la lección 6: el principal original tiene dos confirmaciones, la lección ejecutable 6 entradas y ningún control remoto. Limpieza de trabajo/índice; puede existir dist ignorado. El vídeo se grabó con Git 2.52.0 y GitTree 2.0 en Ubuntu 24.04: ambas ediciones se guardaron en el propio editor de GitTree, el trozo y las líneas se prepararon y la confirmación se realizó en la aplicación, y las comprobaciones del terminal se ejecutaron con lo que creó la aplicación o con copias separadas. Los controles del trozo y de la línea se operaban de verdad; la ruta del parche nativo se ejecutó en una copia separada. No se ejecutó nada en macOS o Windows, y Ubuntu es el único sistema Linux registrado. El mínimo de Git fuente de GitTree es 2.39.0. Una vez que haya iniciado sesión, el trabajo local estará en el plan gratuito.

Concepto

Un expediente puede contener varias decisiones independientes. Un trozo agrupa cambios textuales cercanos, no necesariamente una intención comercial. Seleccionar un reemplazo requiere que se elimine la línea anterior and y se agregue la nueva línea; elegir solo la adición puede crear un parche diferente.

El índice describe un árbol siguiente completo, incluso cuando selecciona solo unas pocas líneas modificadas. Aquí HEAD tiene CSS-01, el índice se convierte en CSS-02-INDEX y el CSS funcional permanece CSS-02-WORKING. Guardar ediciones cambia los bytes de trabajo; Stage Lines cambia el índice; la confirmación normal se mueve principal pero no sobrescribe el radio restante. No hay cambios de árbitros remotos. Preparación parcial nativa y aplicación de parche utilizan las mismas distinciones de contenido.

Edición completa y cuerpos de destino

Reemplace index.html con HTML-02-HEADLINE y trabajando estilos.css con CSS-02-WORKING. CSS-02-INDEX a continuación es target index, no un cuerpo con el que sobrescribir el archivo de trabajo.

index.html — HTML-02-TÍTULO

Extracto del archivo · html
<!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>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn.</p></footer>
  <script type="module" src="site.js"></script>
</body>
</html>

estilos.css — CSS-02-ÍNDICE

Extracto del archivo · css
:root {
  color-scheme: light;
  --page: #f7f8fa;
  --surface: #ffffff;
  --text: #17212e;
  --link: #154ab5;
  --line: #bac4d0;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--page);
  color: var(--text);
  font: 1rem/1.6 system-ui, sans-serif;
}

a {
  color: var(--link);
}

.site-header,
main,
footer {
  width: min(68rem, 100% - 2rem);
  margin-inline: auto;
}

.site-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1rem;
}

.hero {
  max-width: 48rem;
  padding-block: 3rem;
}

h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.2;
}

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
  gap: 1rem;
}

.feature-card {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.5rem;
  background: var(--surface);
}

section {
  margin-block-end: 2rem;
}

button,
input {
  font: inherit;
}

button,
input {
  padding: 0.5rem 0.75rem;
}

:focus-visible {
  outline: 3px solid var(--link);
  outline-offset: 3px;
}

form {
  display: grid;
  max-width: 28rem;
  gap: 0.5rem;
}

estilos.css — CSS-02-TRABAJANDO

Extracto del archivo · css
:root {
  color-scheme: light;
  --page: #f7f8fa;
  --surface: #ffffff;
  --text: #17212e;
  --link: #154ab5;
  --line: #bac4d0;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--page);
  color: var(--text);
  font: 1rem/1.6 system-ui, sans-serif;
}

a {
  color: var(--link);
}

.site-header,
main,
footer {
  width: min(68rem, 100% - 2rem);
  margin-inline: auto;
}

.site-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1rem;
}

.hero {
  max-width: 48rem;
  padding-block: 3rem;
}

h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.2;
}

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
  gap: 1rem;
}

.feature-card {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: var(--surface);
}

section {
  margin-block-end: 2rem;
}

button,
input {
  font: inherit;
}

button,
input {
  padding: 0.5rem 0.75rem;
}

:focus-visible {
  outline: 3px solid var(--link);
  outline-offset: 3px;
}

form {
  display: grid;
  max-width: 28rem;
  gap: 0.5rem;
}

En GitTree

  1. En Show Files (Comando/Ctrl+Shift+E), enfoque cada archivo existente y presione Enter; pegue el cuerpo de trabajo indicado, luego Save o Comando/Ctrl+S. No pegue el destino del índice sobre CSS en funcionamiento.
  2. Back to Graph → Paleta de comandos… (Comando/Ctrl+Mayús+P) → Show Working Changes. Haga clic en index.html debajo de Unstaged Files.
  3. Elija Hunk en la vista Diff (paleta Show Diff as Hunks). En el reemplazo del título, elija Stage Hunk. Espere solo ese cambio completo de título en Staged Files. El archivo completo Stage File sería equivalente solo porque este HTML no tiene otra edición.
  4. Haga clic en estilos.css en Archivos no preparados. Mantenga Ignore whitespace apagado. Encuentre el reemplazo de ancho máximo en la línea 41: 44rem → 48rem.
  5. Seleccione la casilla de verificación para la línea max-width: 44rem; eliminada y la línea max-width: 48rem; agregada. Sus nombres accesibles incluyen signo, número de línea y texto. Active Stage Lines en la barra de herramientas de selección. No elija el par de radios en la línea 59.
  6. Alternativa en una repetición separada: Stage Hunk solo en el trozo de ancho máximo da el mismo objetivo aquí. Split/palette Show Diff Side by Side coloca las celdas eliminadas/agregadas en sus lados nuevos/antiguos adecuados; Ambos tienen sus propios controles de selección. Regresa con Hunk para la toma principal.
  7. Haga clic en estilos preparados.css: solo debe cambiar el ancho máximo. Haga clic en estilos.css no preparados: solo queda el radio. Utilice Clear para borrar una selección, no para descartar contenido. Si preparó demasiado, seleccione el fragmento en etapa relevante y Unstage Hunk o elija ambas líneas de reemplazo en etapa y Unstage Lines, luego vuelva a verificar.
  8. Ingrese Resumen feat: refine the hero and card spacing, todas las opciones normales desactivadas y Commit Changes to 2 Files (o Comando/Ctrl+Intro una vez). Verifique la confirmación parcial y conserve el radio no preparado.
  9. No utilice Stage All Changes, descarte ni realice una confirmación de limpieza. La lección 8 posee deliberadamente el compromiso de radio.

Una selección obsoleta está ligada a la huella digital de la diferencia; vuelva a cargar después de cualquier edición externa en lugar de aplicar un parche destinado a bytes antiguos. Si la ocultación de espacios en blanco elimina la elegibilidad para la selección de líneas, lea el motivo y restaure la diferencia completa en lugar de fingir que se realizó la elección.

en la terminal

Después de guardar ambas ediciones:

Command · bash
git diff -- styles.css

Diferencia de trabajo completa observada:

Salida
diff --git a/styles.css b/styles.css
index d443c7e..6382365 100644
--- a/styles.css
+++ b/styles.css
@@ -38,7 +38,7 @@ footer {
 }
 
 .hero {
-  max-width: 44rem;
+  max-width: 48rem;
   padding-block: 3rem;
 }
 
@@ -56,7 +56,7 @@ h1 {
 .feature-card {
   padding: 1rem;
   border: 1px solid var(--line);
-  border-radius: 0.5rem;
+  border-radius: 0.75rem;
   background: var(--surface);
 }
 

Ruta interactiva nativa: git add -p -- index.html selecciona su fragmento titular. git add -p -- styles.css puede aceptar el primer trozo y rechazar el trozo de radio. Las indicaciones varían según la versión de Git; Inspeccione el contenido antes de responder, no una secuencia S/N memorizada.

Un equivalente nativo determinista es guardar el siguiente parche completo outside del proyecto como <selection.patch> y aplicarlo solo al índice:

Extracto del archivo · diff
diff --git a/styles.css b/styles.css
--- a/styles.css
+++ b/styles.css
@@ -38,7 +38,7 @@
 }
 
 .hero {
-  max-width: 44rem;
+  max-width: 48rem;
   padding-block: 3rem;
 }
 
Command · bash
git add -- index.html
git apply --cached --check "<selection.patch>"
git apply --cached "<selection.patch>"
git diff --cached -- styles.css

Ambos check/apply tuvieron éxito silenciosamente en el encuentro. La consulta final impresa:

Salida
diff --git a/styles.css b/styles.css
index d443c7e..4dc8369 100644
--- a/styles.css
+++ b/styles.css
@@ -38,7 +38,7 @@ footer {
 }
 
 .hero {
-  max-width: 44rem;
+  max-width: 48rem;
   padding-block: 3rem;
 }
 

git show :styles.css debe ser igual al CSS-02-INDEX completo anterior. El archivo de trabajo aún debe ser igual a CSS-02-WORKING completo. Ninguno de los comandos --cached patch escribe CSS funcional.

Alternativa de confirmación nativa, no una repetición después del éxito de la aplicación:

Command · bash
git commit --quiet -m "feat: refine the hero and card spacing"
git status --short
git diff -- styles.css

Confirmación silenciosa: salida 0, sin salida. Estado:

Salida
 M styles.css

Diferencia de trabajo restante completa:

Salida
diff --git a/styles.css b/styles.css
index 4dc8369..6382365 100644
--- a/styles.css
+++ b/styles.css
@@ -56,7 +56,7 @@ h1 {
 .feature-card {
   padding: 1rem;
   border: 1px solid var(--line);
-  border-radius: 0.5rem;
+  border-radius: 0.75rem;
   background: var(--surface);
 }
 

Resultado

Al final de esta lección: tres confirmaciones en main. HEAD/index contiene el nuevo título y el héroe más amplio, pero el radio sigue siendo de 0,5 rem allí; El radio de trabajo es de 0,75 rem. Sólo estilos.css tiene una modificación no preparada. Sin control remoto, fusión o rebase. Las alternativas opcionales de limpieza/cuaderno no reemplazan este punto de control.

Errores comunes

  • Seleccionar solo la mitad agregada de un reemplazo: no necesariamente el parche deseado.
  • Preparar todo el archivo CSS: también incluye el radio.
  • Al pegar CSS de índice de destino sobre CSS funcional: se pierde la edición intencionalmente separada.
  • Realizar un compromiso de limpieza ahora: contradice la tarea inicial de la lección 8.

Si algo sale mal

Utilice comparaciones en caché/en funcionamiento para diagnosticar una discrepancia de índice. Antes de confirmar, Unstage Lines/Hunk puede cambiar la selección sin descartar la edición de trabajo. Si Git rechaza un parche con formato incorrecto o obsoleto, deténgase; no lo fuerces. Vuelva a leer el archivo actual y vuelva a seleccionar el contenido exacto. Una confirmación/enganche fallido no es permiso para omitir ganchos.

Comprueba tu comprensión

Responda cada pregunta y luego lea por qué. Las preguntas marcadas como "Obligatorias" cuentan para completar la lección.

  1. Pregunta 1 de 6

    ¿Qué define a un galán?

    Elija una respuesta.

  2. Pregunta 2 de 6

    A la etapa 44rem → 48rem, ¿qué líneas pertenecen?

    Elija cada respuesta que corresponda.

  3. Pregunta 3 de 6
    Requerido

    Después de la selección parcial, ¿cuáles son el ancho y el radio en el índice?

    Elija una respuesta.

  4. Pregunta 4 de 6
    Requerido

    Si también preparas el radio antes de comprometerte, ¿qué queda?

    Elija una respuesta.

  5. Pregunta 5 de 6

    Un guardado externo cambia la diferencia seleccionada. ¿Qué es seguro?

    Elija una respuesta.

  6. Pregunta 6 de 6
    Requerido

    Verifique el punto de control terminado. ¿Qué evidencia coincide?

    Elija cada respuesta que corresponda.

0 de 6 correcto

Responda correctamente las preguntas requeridas para completar la lección.

Comprobado en este navegador.

Practica

Explique los tres estados diferentes de radios/ancho utilizando los archivos completos. Entrada modificada: si también prepara el par de radios, la siguiente confirmación contiene ambos cambios de CSS y no deja ninguna diferencia de CSS. Pruébelo sólo en una repetición separada; mantenga la edición del radio canónico para la lección 8.

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

  • Seleccione el alcance que coincida con el cambio previsto.
  • Verifique el archivo preparado completo y la diferencia de trabajo sobrante.
  • Mantenga separados los trabajos útiles de forma independiente sin destruirlos.

Términos del glosario introducidos

Hunk — كتلة; líneas seleccionadas — الأسطر المختارة; escenario—تجهيز; fuera del escenario — إلغاء التجهيز; parche—رقعة; índice — الفهرس.

Transcripción del vídeo

La narración del vídeo, cue a cue.

Mostrar la transcripción
  1. Prepare un cambio mientras preservando el siguiente.
  2. Las ediciones cercanas pueden pertenecer a diferentes intenciones.
  3. Guarde el título y ambos CSS ediciones antes de seleccionar la confirmación.
  4. Lea ambos cambios antes de elegir cualquiera de los dos.
  5. Comience con los aislados reemplazo de titulares.
  6. Pon en escena este titular, no es un cambio de archivo no relacionado.
  7. Mantenga visible la diferencia completa para la selección de línea.
  8. Un reemplazo incluye el líneas eliminadas y agregadas.
  9. Coloque en escena el par de anchos mientras dejando el radio afuera.
  10. Verificar el contenido preparado y el contenido restante por separado.
  11. Selección de reparaciones sin etapas. sin descartar texto de trabajo.
  12. La selección completa es equivalente sólo para este galán exacto.
  13. Borrar las casillas de verificación no cancelar o eliminar contenido.
  14. El parche nativo actualiza el índice, no el archivo de trabajo.
  15. Verificar el seleccionado completo archivo, no sólo un punto culminante.
  16. ¿A qué radio pertenece? la instantánea preparada?
  17. Confirme el título y el ancho, dejando el radio para más tarde.
  18. La edición de CSS restante es el resultado esperado.
  19. La próxima lección grabará la edición de radio independiente.
  20. Si seleccionas el radio también, no queda nada en la diferencia CSS.
  21. Una diferencia modificada requiere una nueva selección, no aplicación forzada.
  22. No descartes trabajos útiles para arreglar una selección por etapas.
  23. Nombra el preparado y el restante. ediciones antes de continuar.
  24. Mantenga la edición del radio para el siguiente compromiso explícito.