Saltar al contenido
GitTree

Lección 5 · Cimentaciones

Prepare la instantánea deseada y realice su primera confirmación

Cree el archivo README y la página principal del proyecto dentro de GitTree, seleccione lo que pertenece a la primera confirmación y deje deliberadamente una edición posterior sin confirmar. Demuestre lo que se registró en lugar de juzgar el éxito únicamente con una notificación.

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

  • Cree y guarde los dos primeros archivos del proyecto en GitTree.
  • Preparar y cancelar la preparación sin confundir ninguna operación con la eliminación de un archivo de trabajo.
  • Compare el índice con el árbol de trabajo antes de confirmar.
  • Escriba un resumen útil y confirme solo la instantánea preparada.
  • Verifique los archivos de la primera confirmación, la identidad y los cambios de trabajo restantes.

Antes de empezar

Comience donde termina la lección 4. El original gittree-features es un repositorio normal en el main no nacido, sin confirmaciones, archivos de proyecto ni controles remotos. Su identidad local es GitTree Demo / demo@example.com. No continúe dentro del complemento gittree-features-copy de la lección 4.

El mínimo inspeccionado de GitTree es Git 2.39.0. El vídeo se grabó con Git 2.52.0 y GitTree 2.0 en Ubuntu 24.04: los dos archivos, su preparación y la primera confirmación se realizaron en la propia aplicación, y las comprobaciones del terminal se ejecutaron con lo que creó la aplicación o con copias separadas del proyecto en los estados A, B y C, por lo que el original nunca se reprodujo. No se ejecutó nada en macOS o Windows, y Ubuntu es el único sistema Linux registrado; La tecla de comando y los acordes Windows provienen de la fuente del mapa de teclas.

Native Git no necesita una cuenta para una confirmación local. En GitTree, inicia sesión y el plan gratuito cubre esta lección. No se requiere ningún proveedor, Pro/trial, borrador de IA, clave API, corredor de CI o entorno de nube. No agregue un control remoto para realizar una confirmación local.

Concepto: seleccionar contenidos y luego grabarlos

Una confirmación no es "guardar todo lo visible". En esta lección, una confirmación normal registra el index: la instantánea seleccionada completa. Crea una confirmación raíz y le señala lo principal. No empuja a ninguna parte.

Guardar en el editor actualiza el working tree. Staging actualiza el índice del archivo de trabajo elegido. La eliminación de etapas cambia la selección del índice; no es Descartar y no elimina el archivo de trabajo en nuestro ejercicio. Antes de la primera confirmación, no hay ninguna versión confirmada anterior para restaurar, por lo que un archivo nuevo no preparado deja de ser rastreado nuevamente.

Una edición preparada es una analogía útil: puede revisar su borrador de trabajo después de preparar una edición y luego publicar la edición preparada localmente sin incluir el borrador más nuevo. La puesta en escena no es una suscripción en vivo a ediciones posteriores. Referencia adicional de Git documenta esa selección; la referencia de confirmación distingue las confirmaciones de índice ordinarias de otros modos.

Usamos no -a, argumentos de ruta de confirmación explícita, modificación, confirmación vacía o etapa automática. El índice es una descripción completa del árbol siguiente, no solo una lista de nombres modificados.

EstadoÍndice de trabajo.htmlÍndice índice.htmlCABEZA/principalRemoto
R: archivos iniciales guardadosHTML-01ausenteno nacidoNinguno
B: ambos archivos preparadosHTML-01HTML-01no nacidoNinguno
C: línea de apoyo editada después de la puesta en escenaHTML-01-TRABAJANDOHTML-01no nacidoNinguno
D: la confirmación ordinaria tiene éxitoHTML-01-TRABAJANDOHTML-01La primera confirmación contiene HTML-01Ninguno

README-01 también está preparado y comprometido. Después de D, README está limpio; index.html permanece modificado intencionalmente sólo en el árbol de trabajo. El gráfico puede tener una nueva confirmación mientras el estado no esté limpio.

Archivos completos del proyecto

Utilice UTF-8, LF y una nueva línea final. No incluya vallas de Markdown en los archivos guardados. Todavía no existe ningún paquete.json, CSS, JS o una suite Node ejecutable; esos llegan en la lección 6.

LÉAME.md — LÉAME-01

Extracto del archivo · markdown
# GitTree Features

A fictional landing page used to learn Git and GitTree.

All people and addresses in this repository are fictional.
No form submits information to a server.

index.html — HTML-01, antes de la puesta en escena

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>
</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">Understand every change.</h1>
      <p id="hero-copy">A clear view of Git history.</p>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn.</p></footer>
</body>
</html>

index.html — HTML-01-WORKING, solo después de la puesta en escena

Reemplace el archivo de trabajo guardado con este cuerpo completo after la versión anterior ingresó al índice:

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>
</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">Understand every change.</h1>
      <p id="hero-copy">Choose one change, then check what Git saved.</p>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn.</p></footer>
</body>
</html>

El único reemplazo previsto es la línea de apoyo de copia de héroe. No cambie el encabezado principal ni ningún otro byte.

En GitTree

1. Cree y guarde los dos archivos iniciales.

  1. Confirme el nombre del repositorio original y el contexto principal. Abra Command Palette…, Command+Shift+P / Ctrl+Shift+P, escriba New File… y seleccione ese comando exacto (files.newFile). Sin ningún argumento de carpeta, comienza en la raíz del proyecto.
  2. En New File, establezca Path from the project folder en README.md y luego elija Create. Espere que el nuevo archivo de trabajo se abra en el espacio de trabajo de archivos. La creación rechaza un camino existente en lugar de sobrescribirlo.
  3. Enfoque el área de contenido editable, pegue el cuerpo README-01 completo y luego elija Save. Alternativa: Command+S / Ctrl+S mientras el editor en funcionamiento tiene el foco. Espere que el indicador Unsaved changes se borre después del éxito real del guardado.
  4. Repita New File… → ruta index.html → Create. Pegue el HTML-01 completo, no la variante funcional posterior. Guarde y espere a que se borre el indicador de no guardado.
  5. Elija Back to Graph en la barra de herramientas del archivo o el comando de paleta Back to Graph (view.returnToGraph). Luego usa la paleta Show Working Changes (wip.show). Espere README.md e index.html en Unstaged Files, sin nada debajo de Staged Files.
  6. Observe Stage Changes to Commit si es el botón principal del compositor mientras no hay nada preparado. Su acción definida en el origen pone en marcha all cambios de trabajo; no significa ya un compromiso exitoso. En su lugar, utilizamos una preparación deliberada por archivo.

Guardar un búfer del editor no es una preparación. Ver un archivo en una pestaña no es prueba de que su último búfer haya llegado al disco.

2. Preparar, retirar del escenario de forma segura y luego preparar ambos archivos.

  1. Para README.md en Unstaged Files, use su acción de fila Stage File. Alternativa de teclado: seleccione solo esa fila, mantenga el foco en la lista no preparada y presione S; el comando de la paleta es Stage (wip.stageSelected). Espere README.md en Staged Files.
  2. Para esa fila LÉAME en Archivos preparados, elija Unstage File. Alternativa de teclado: selecciónela solo, mantenga el foco en la lista preparada y presione U; comando de paleta Unstage (wip.unstageSelected). Espere que README.md regrese a Archivos no preparados. Su contenido de trabajo permanece intacto.
  3. Prepare README.md nuevamente, luego prepare index.html con su acción Stage File. Espere exactamente two rutas de archivos preparadas.
  4. Haga clic en cada fila preparada para inspeccionar su adición completa. index.html aún debe contener A clear view of Git history. No infiera el contenido únicamente a partir del recuento de archivos.

Los atajos de una sola letra tienen como alcance sus listas, no una solicitud para escribir S/U en un editor o resumen. No se supone ningún comportamiento de preparación de arrastrar y soltar.

3. Guarde una edición posterior sin prepararla

  1. Abra Show Files (files.focus), Command+Shift+E / Ctrl+Shift+E. Enfócate en index.html en el árbol de Archivos y presiona Enter para abrir su copia de trabajo. Alternativa: haga clic en la pestaña del archivo de trabajo guardado existente. Trabaje en la vista editable File, no en un blob histórico ni en una diferencia en escena.
  2. Reemplace todo su contenido con HTML-01-WORKING arriba. Guarde mediante Save o Comando/Ctrl+S. Espere a que el disco se guarde correctamente.
  3. Regrese por Back to Graph, luego Show Working Changes. index.html ahora aparece en las listas both. Haga clic en su fila Archivos no preparados: la diferencia muestra el reemplazo posterior de la línea de soporte.
  4. Haga clic en su fila Archivos preparados: la adición de la primera confirmación todavía contiene la línea de soporte anterior. not elige Archivo provisional para esa edición de trabajo más reciente o Stage All Changes ahora. Eso cambiaría el compromiso que estás preparando.

4. Escribe el mensaje y confirma el índice.

  1. En el campo del compositor Summary (marcador de posición Commit summary), ingrese exactamente feat: add the GitTree Features hero. Deje Description vacío. Este resumen dice lo que cambió; no promete un sitio terminado ni un conjunto de pruebas aprobado.
  2. Mantenga Amend Previous Commit apagado. Expanda Commit Options y verifique que Skip Hooks (--no-verify), Add Signed-off-by, Different Author, Push After Commit y Allow Empty Commit estén desactivados. No agregue coautores ni invoque la redacción de IA.
  3. Revisa los dos caminos preparados y la línea de héroes preparada anteriormente por última vez. Elija Commit Changes to 2 Files. Alternativa de teclado: Command+Enter / Ctrl+Enter, enrutado a través del comando de paleta Commit (commit.submit), solo después de confirmar el repositorio activo y el estado pendiente.
  4. Espere el resultado real de Git. Un resultado exitoso hace referencia a un SHA medido; no copie un SHA fabricado de un diagrama. Espere una primera confirmación gráfica en main. En este caso de envío sin cambios, el borrador del mensaje se borra después del éxito.
  5. Inspeccione las listas posteriores a la confirmación: no queda nada preparado; index.html permanece en Archivos no preparados con la línea posterior. Haga not clic en Cambios de etapa para confirmar para "finalizar" este resultado intencional.

El recuento de archivos mostrado es de dos rutas preparadas, no de tres filas en dos listas. Push After Commit es una opción de seguimiento independiente; está apagado y no hay control remoto.

en la terminal

Ejecute en <course-parent>/gittree-features, reemplazando el marcador de posición con su padre real reservado. Si ya realizó una mutación de la aplicación, inspect its resulting state; No repita la mutación equivalente y avance accidentalmente más allá del punto de control.

Archivos guardados, antes de la puesta en escena

Command · bash
git status --short

Observado:

Salida
?? README.md
?? index.html

Intentar intencionalmente una confirmación normal sin contenido preparado:

Command · bash
git commit --quiet -m "feat: add the GitTree Features hero"

Salida estándar observada con salida 1, sin stderr:

Salida
On branch main

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	README.md
	index.html

nothing added to commit but untracked files present (use "git add" to track)

No se creó ninguna confirmación. Este caso negativo explica por qué es importante seleccionar archivos; no utilice una confirmación vacía para evitarlo.

Equivalentes nativos en etapa/no en etapa

En una repetición separada del mismo estado del archivo guardado:

Command · bash
git add -- README.md
git rm --cached --quiet -- README.md

Ambos comandos tuvieron éxito en silencio. --cached es esencial: elimina la nueva entrada del índice, not the working file. Los bytes README marcados permanecieron sin cambios y el estado corto volvió a mostrar los dos archivos sin seguimiento. Este es específicamente un ejemplo de archivo nuevo no confirmado; no lo generalice para eliminar archivos de proyecto rastreados.

Prepara ambos:

Command · bash
git add -- README.md index.html
git status --short
git diff --cached --stat

Estado observado:

Salida
A  README.md
A  index.html

Resumen observado:

Salida
 README.md  |  6 ++++++
 index.html | 21 +++++++++++++++++++++
 2 files changed, 27 insertions(+)

El resumen de estadísticas cuenta líneas, no exactitud. Revise el contenido real preparado antes de comprometerse.

Después de guardar la edición de trabajo posterior

Command · bash
git status --short
git diff -- index.html

Estado observado:

Salida
A  README.md
AM index.html

Diferencia de trabajo observada:

Salida
diff --git a/index.html b/index.html
index 5470374..27f8718 100644
--- a/index.html
+++ b/index.html
@@ -13,7 +13,7 @@
     <section class="hero" aria-labelledby="hero-title">
       <p class="eyebrow">GitTree Learn demo project</p>
       <h1 id="hero-title">Understand every change.</h1>
-      <p id="hero-copy">A clear view of Git history.</p>
+      <p id="hero-copy">Choose one change, then check what Git saved.</p>
     </section>
   </main>
   <footer><p>Built by a fictional team for GitTree Learn.</p></footer>

Se trata de abreviaturas de blobs de archivos medidas a partir del contenido exacto de LF, no de SHA de confirmación ficticios. El espaciado de estado corto y la longitud de las abreviaturas pueden variar según la configuración de formato; las dos comparaciones deben permanecer iguales.

Lea el archivo preparado exacto:

Command · bash
git show :index.html

Salida completa observada:

Salida
<!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>
</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">Understand every change.</h1>
      <p id="hero-copy">A clear view of Git history.</p>
    </section>
  </main>
  <footer><p>Built by a fictional team for GitTree Learn.</p></footer>
</body>
</html>

Confirmar y verificar

Solo en la reproducción nativa, sin volver a realizar la edición posterior:

Command · bash
git commit --quiet -m "feat: add the GitTree Features hero"

Observado: sin salida, salga 0. Este dispositivo no tenía ganchos/fichas activas y solo tenía una identidad local ficticia. No deshabilite los enlaces/firmas de un proyecto real para forzar el éxito del tutorial.

Inspeccione el resultado de la aplicación nativa o real:

Command · bash
git log -1 --format="%s%n%an <%ae>%n%cn <%ce>"
git rev-list --count HEAD
git ls-tree --name-only HEAD
git status --short
git diff --cached
git remote

Salidas observadas en orden para los primeros cuatro comandos:

Salida
feat: add the GitTree Features hero
GitTree Demo <demo@example.com>
GitTree Demo <demo@example.com>
1
README.md
index.html
 M index.html

Los dos últimos comandos produjeron cada uno no output and exited 0. La edición de trabajo permanece; no existe ningún control remoto. Esta es una primera confirmación local, no una carga.

Para una confirmación de contenido independiente, git show HEAD:index.html devolvió el cuerpo HTML-01 completo que se muestra arriba como resultado preparado; git diff -- index.html todavía mostraba el reemplazo exacto de la línea de soporte. El índice coincidió con HEAD para ambas rutas. El archivo más nuevo no se perdió.

Resultado

Al final de esta lección, se detallan los puntos principales de exactamente una confirmación con el resumen declarado y el autor/commitidor ficticio. HEAD y el índice contienen README-01 y HTML-01; index.html de trabajo contiene HTML-01-WORKING. El estado tiene un espacio inicial y luego M para index.html. No hay control remoto.

No “limpie” la edición intencional, no haga una segunda confirmación, modifique la raíz o agregue el cuaderno de práctica opcional antes de pasar este punto de control a la lección 6. Cualquier cuaderno de continuación limpia posterior pertenece a una variante preservada por separado, no a esta primera confirmación de dos archivos.

Errores comunes

  • Saving without staging: bytes de disco y bytes de confirmación seleccionados difieren.
  • Staging again after the deliberate edit: comportamiento válido de Git, pero la línea más nueva ingresaría la confirmación, cambiando el resultado de esta lección.
  • Counting all visible rows as staged files: una ruta puede tener comparaciones en etapas y no en etapas.
  • Using Stage All Changes as a final cleanup: seleccionaría la edición omitida intencionalmente.
  • Enabling amend or automatic push: esas son operaciones diferentes con alcance diferente.
  • Calling unstage Discard: unstage edita la selección del índice; Descartar puede eliminar el contenido funcional.

Si algo sale mal

Si Nuevo Archivo rechaza una ruta existente, cancélela e inspeccione. No sobrescriba contenido desconocido. Si el editor informa que el disco cambió, conserve ambas versiones y use sus controles Review Changes, Reload from Disk o Keep Editing según el estado real; no seleccione ciegamente Overwrite with My Edits.

Si la confirmación se bloquea porque no se ha preparado nada, elija los archivos deseados y revíselos. Si falta identidad, inspeccione la configuración local de la lección 4; un intento fallido puede ofrecer Set up your Git identity, con un destino de repositorio explícito. No justifica una escritura de identidad global y guardar la identidad no significa que la confirmación se realizó correctamente.

Si Git rechaza una confirmación o falla un enlace, lea Hook Output cuando esté disponible. El texto de rechazo definido en la fuente es The commit was not created. Your message and staged changes are unchanged. Corrija la causa indicada y vuelva a verificar el índice antes de volver a intentarlo. No marque Skip Hooks simplemente para fabricar una toma verde. Vuelva a verificar el HEAD real después de resultados inciertos antes de volver a enviarlo.

Si se creó una confirmación con contenidos inesperados, deténgase y registre su SHA real, su estado de trabajo/índice y su mensaje. No modifique, restablezca ni haga clic en Descartar inmediatamente. Cambiar la configuración ahora no cambia los metadatos ya almacenados en esa confirmación.

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

    Creas index.html y completas Guardar en el editor sin prepararlo. ¿Qué estableció el ahorro?

    Elija una respuesta.

  2. Pregunta 2 de 6

    Usted prepara el nuevo README y luego lo retira antes de la primera confirmación. ¿Qué afirmaciones son correctas?

    Elija cada respuesta que corresponda.

  3. Pregunta 3 de 6
    Requerido

    Ambos archivos se preparan, luego HTML-01-WORKING se guarda sin volver a preparar. Después de la confirmación ordinaria, ¿qué resultado es correcto?

    Elija una respuesta.

  4. Pregunta 4 de 6
    Requerido

    En una repetición separada, vuelva a preparar index.html después de guardar la versión más reciente y luego confirme ambos archivos. ¿Qué predices?

    Elija una respuesta.

  5. Pregunta 5 de 6

    Dos archivos no están preparados y no hay nada preparado. El botón dice Cambios de etapa para confirmar. ¿Qué hace?

    Elija una respuesta.

  6. Pregunta 6 de 6
    Requerido

    inspeccione el original completo con los comandos nativos nombrados o lea su transcripción completa si las herramientas no están disponibles. ¿Qué observaciones prueban conjuntamente el resultado?

    Elija cada respuesta que corresponda.

0 de 6 correcto

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

Comprobado en este navegador.

Practica

Utilice las consultas de estado/contenido del artículo en su original completo. Explique por qué exactamente una confirmación y una modificación funcional restante son correctas. Registre su predicción antes de leer el archivo preparado.

Para un separate disposable replay only, prepare el index.html editado posteriormente antes de confirmar. Prediga que se registre la línea más nueva y que el estado pase a ser limpio. No cambie el original para realizar esta alternativa. Cuando aún no exista ningún ejercicio de exploración, utilice las dos transcripciones y explique los diferentes resultados.

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

  • Guardar cambia el archivo de trabajo; La puesta en escena selecciona el contenido para la siguiente confirmación ordinaria.
  • La primera confirmación registra el índice y avanza localmente, sin presionar.
  • Verificar contenidos, identidad y trabajos sobrantes por separado; un resultado sucio puede ser intencional.

Términos del glosario introducidos

Escenario — تجهيز; fuera del escenario — إلغاء التجهيز; cometer — إيداع; índice — الفهرس; árbol de trabajo — مجلد العمل; sin seguimiento — غير مُتتبَّع; autor — المؤلف; comprometidor - المُودِع. Descartar significa التخلّص من التغييرات y no es lo mismo que unstage.

Transcripción del vídeo

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

Mostrar la transcripción
  1. Crea el héroe, prepara una edición, y demuestre lo que guardó su primer compromiso.
  2. Comience en el repositorio original desde L004, no su clon complementario.
  3. Guardar, organizar y comprometer cambiar diferentes instantáneas.
  4. Cree el primer archivo a través de Comando Nuevo archivo de GitTree.
  5. Nómbralo README punto em dee, en la raíz del proyecto.
  6. Guarde el proyecto ficticio completo. LÉAME, no las vallas de Markdown.
  7. Crear punto de índice H T M L en el mismo repositorio.
  8. Salva al héroe original. con esta línea de apoyo.
  9. Abra los cambios de trabajo para ver Ambos archivos nuevos y sin seguimiento.
  10. Sin nada escenificado, este El botón realiza todos los cambios primero.
  11. El terminal confirma dos archivos sin seguimiento, no dos confirmaciones.
  12. Una confirmación normal no puede registrar estos archivos antes de seleccionar su contenido.
  13. Prepare primero solo el archivo README.
  14. Vuelve a quitarlo del escenario. esta guardado El texto de trabajo permanece intacto.
  15. Unstage cambia la selección; Descartar puede eliminar el contenido funcional.
  16. Ahora prepare ambos archivos deseados, uno por uno.
  17. Los atajos S y U funcionan en su listas enfocadas, no dentro de campos de texto.
  18. Revisar el contenido preparado, no sólo el recuento de archivos.
  19. El resumen cuenta líneas; lo hace No prueba que esas líneas sean correctas.
  20. La edición preparada es sigue siendo el héroe original.
  21. Vuelva a abrir el archivo de trabajo, no la comparación escenificada.
  22. Guarde el soporte posterior línea sin escenificarla.
  23. Ahora aparece el mismo camino. en ambas comparaciones.
  24. La comparación sin etapas muestra la edición posterior contra el índice.
  25. La adición escenificada todavía contiene la línea anterior.
  26. Leer el índice directamente para probar lo que está preparado.
  27. Sin volver a montar, que apoyando ¿La línea contendrá la primera confirmación?
  28. Escribe un resumen que describa el héroe que realmente agregaste.
  29. Mantener la modificación y todos los comportamientos opcionales apagado para este primer compromiso local.
  30. Compromete los dos caminos escalonados, no todas las filas visibles.
  31. Espere a que Git confirme la creación antes considerando la operación como completa.
  32. Main ahora apunta a su primer compromiso local.
  33. La edición de trabajo posterior permanece fuera del compromiso a propósito.
  34. Verificar el tema, autor y comprometidor de forma independiente.
  35. Hay un compromiso que contiene exactamente estos dos caminos.
  36. Puede coexistir una diferencia en caché vacía con una modificación funcional.
  37. El archivo grabado es anterior; el El archivo de trabajo todavía tiene la línea más nueva.
  38. No se subió nada. esto El repositorio aún no tiene control remoto.
  39. Si realiza primero la edición posterior, la edición preparada cambia.
  40. Ese compromiso alternativo registra el línea más nueva y deja un resultado limpio.
  41. El atajo de confirmación es una alternativa sumisión, no un segundo paso final.
  42. Si Git se niega, inspecciona su salida y el contenido preparado antes de volver a intentarlo.
  43. No descartes la edición restante. o asumir que Deshacer cubre todos los buffers.
  44. Tu punto de control es un compromiso exacto más una edición de trabajo deliberada.
  45. Verifique el contenido grabado, la identidad y el trabajo sobrante por separado.
  46. Al guardar se escribe el archivo de trabajo; selecciones de puesta en escena; cometer registros.
  47. Mantenga la edición posterior. A continuación, inspeccione diferencias y agregar las herramientas del proyecto.
  48. Continuar desde este estado verificado, no de una carpeta limpia supuesta.