Saltar al contenido
GitTree

Lección 13 · trabajo diario

Empujar confirmaciones y publicar una rama

Publique la rama deseada en el origen local sin sobrescribir la rama principal más nueva de Leo. Haga avanzar explícitamente la función principal que solo está detrás y luego publique la función con su propia fuente ascendente.

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

  • Inspeccione el origen y el destino antes de enviar.
  • Avanzar rápidamente una rama de atrás sin una confirmación de fusión.
  • Publique una característica con nombre y verifique su nivel ascendente.
  • Distinguir el rechazo del trabajo perdido.

Antes de empezar

Comience donde terminó la lección 11: principal/H6 retirado, origen/principal/servidor H7 con el pie de página de Leo, limpio, seis principales versus siete confirmaciones recuperadas y 0/1. La característica F1 existe solo localmente sin aguas arriba.

El vídeo fue grabado con Git 2.52.0 y GitTree 2.0 en Ubuntu 24.04: el avance rápido, los push y el upstream se realizaron en la aplicación; los controles de antes y después y el empujón rechazado se realizaron en la terminal. No se ejecutó nada en macOS o Windows, y Ubuntu es el único sistema Linux registrado. El nivel mínimo de Git de origen de GitTree es 2.39.0.

GitTree te pide que inicies sesión; El plan gratuito cubre cada paso aquí. No se necesita cuenta de proveedor, Pro/trial, credencial API o servicio de Internet. Un origen desnudo local no es GitLab o CI. Todas las identidades utilizan example.com; nunca ejecute esta lección dentro de un proceso de pago de código fuente.

Realice mutaciones a través de GitTree o la ruta nativa en entradas idénticas, no ambas consecutivamente. La verificación de solo lectura puede seguir a cualquiera de los dos. Cualquier preparación descrita como trabajo terminal se etiqueta como preparación nativa, nunca como característica inventada de una aplicación.

Efectos de concepto y estado.

Push propone actualizaciones para referencias remotas seleccionadas. No es una copia de seguridad de cada archivo, búfer sin seguimiento o rama. Un destino puede rechazar una actualización incluso cuando funciona la conexión de red.

El H7 entrante desciende del principal/H6. Un avance rápido puede pasar a ese descendiente sin inventar un compromiso de fusión. Esta operación de ascendencia expresada de manera estricta se presenta aquí; La integración divergente pertenece a lecciones posteriores del curso.

La publicación de tarjetas de características/precios envía F1 a una nueva rama del servidor. En GitTree ese push no elige el upstream: lo configuras después desde la misma fila de rama. No cambia la rama actual ni fusiona sus tarjetas de flujo de trabajo en la principal. Un envío principal sin operación exitoso no es una confirmación de un nuevo servidor.

El avance rápido explícito cambia principal/HEAD, índice y trabajo a H7. Push cambia solo la referencia del servidor seleccionado y el seguimiento/configuración local después del éxito; no guarda el texto no preparado. El principal remoto debe conservar el compromiso de Leo.

Prepare el estado exacto del proyecto

Utilice el original después de la lección 11, busque el fondo para obtener una vista previa estable. No se agrega ninguna carga útil de archivo ni cuaderno nuevo. El rechazo intencional detrás de la parte principal es una toma nativa separada, no una instrucción para hacer clic en la aplicación para forzar el envío.

En GitTree

Paleta: Comando+Mayús+P (Ctrl+Mayús+P en Ubuntu); escriba el comando con nombre exacto y selecciónelo. Las acciones de referencia con nombre usan el menú contextual de esa fila, no un acceso directo de paleta sin argumentos.

  1. En principal, inspeccione el origen/destino real y los recuentos 0/1; no presiones primero la versión principal más antigua en la toma canónica.
  2. En el grupo Remoto del panel lateral, haga clic derecho en origin/main → Merge origin/main into main. En Record it as elija Fast-forward only, luego Merge. Espere principal en H7 con el pie de página de Leo, un padre y una línea recta en el gráfico.
  3. Ejecute las lecturas de ascendencia/limpieza a continuación; si main diverge, Cancelar en lugar de elegir un modo de reescritura.
  4. Haga clic en la barra de herramientas Push en principal. El aviso dice "Todo ya estaba actualizado": esta no es una nueva confirmación.
  5. En Local, abra la carpeta feature y haga clic derecho en pricing-cards → Push feature/pricing-cards. Con un control remoto no hay diálogo: el aviso dice "Tarjetas de funciones/precios enviadas al origen/tarjetas de características/precios".
  6. El empujón no estableció ningún flujo ascendente (la rama no tenía ninguno). Haga clic derecho en la misma fila → Upstream → Set Upstream…, en What should feature/pricing-cards track? elija origin/feature/pricing-cards y luego Track. Verifique la función del servidor F1 y el upstream.
  7. Seleccione etiquetas de gráficos principales y de características sin realizar el pago; Confirme que siguen siendo consejos diferentes y que no apareció ninguna fusión.
  8. Deje el principal desprotegido, limpio y ambas ramas del servidor con nombre verificadas. No seleccione Force Push… ni publique todas las referencias.

Para cada confirmación ordinaria: el resumen es el tema indicado; Descripción vacía; Modificar la confirmación anterior, omitir enlaces, agregar firmada por otro autor, presionar después de la confirmación y permitir la confirmación vacía; sin coautores. Prepare solo los archivos nombrados, luego confirme los cambios en N archivos una vez (Archivo para uno), o Comando+Entrar como alternativa. Espere el resultado real. Una lección que modifica explícitamente cambia sólo esa opción indicada.

en la terminal

De la demostración original, alternativa nativa:

Command · bash
git rev-list --left-right --count main...origin/main
git merge --ff-only --quiet origin/main
git push --quiet origin main
git push --quiet --set-upstream origin feature/pricing-cards
git rev-list --left-right --count main...origin/main
git rev-parse --abbrev-ref 'feature/pricing-cards@{upstream}'
git symbolic-ref --short HEAD
git status --short

Primer conteo0/1; avance rápido y silencio empujan la salida 0. Las lecturas finales se imprimen, en orden:

Salida
0	0
origin/feature/pricing-cards
main

El estado es silencioso. Compare de forma independiente el servidor/principal local y presente SHA reales con git ls-remote --heads origin; Los ID de variables deben coincidir con los consejos locales previstos. Toma negativa previa al avance rápido separada: git push --quiet origin main exited1 con el extracto de diagnóstico real:

Salida
 ! [rejected]        main -> main (non-fast-forward)

El diagnóstico completo nombra la URL del archivo local medido y las sugerencias de Git. Ningún árbitro remoto cambió ante esa negativa; no fabrique la URL ni la repare a la fuerza.

Resultado

Where you end: main avanzó rápidamente a H7 y aún está desprotegido/limpio; El servidor principal sigue siendo H7. La característica F1 ahora se publica como tarjetas de origen/características/precios y realiza un seguimiento; principal y característica no se fusionaron.

Errores comunes

  • Publicar el archivo principal actual cuando se refería a la característica nombrada.
  • Tratar una negativa únicamente por detrás como un permiso para sobrescribir a Leo.
  • Suponiendo que la inserción configuró la función ascendente, o que la configuración fusionó algo: la aplicación necesita el paso Establecer ascendente... por separado.

Si algo sale mal

Después del rechazo, busque e inspeccione la ascendencia/destino antes de volver a intentarlo. Para esta entrada exacta solo detrás, utilice el avance rápido explícito. Un push remoto no tiene una aplicación genérica Deshacer; coordinar cualquier corrección remota posterior.

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é hace la publicación de F1?

    Elija una respuesta.

  2. Pregunta 2 de 6

    ¿Qué hechos se mantienen después del éxito canónico?

    Elija cada respuesta que corresponda.

  3. Pregunta 3 de 6
    Requerido

    Avance rápido principal/H6 al descendiente H7: ¿nueva confirmación de fusión?

    Elija una respuesta.

  4. Pregunta 4 de 6
    Requerido

    Cambiar entrada: empuje el antiguo H6 sobre el servidor H7 antes de la alineación.

    Elija una respuesta.

  5. Pregunta 5 de 6

    Push dice que ya está actualizado. ¿Se publica la F1?

    Elija una respuesta.

  6. Pregunta 6 de 6
    Requerido

    ¿Qué evidencia final se necesita?

    Elija cada respuesta que corresponda.

0 de 6 correcto

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

Comprobado en este navegador.

Practica

Demuestre la igualdad H7 principal/servidor, la igualdad función/servidor F1, la función ascendente, el pago principal sin cambios y el estado de limpieza. En una copia principal antigua separada predice y observa el rechazo sin perder H7.

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

  • Inspeccione el destino exacto.
  • Integre explícitamente un descendiente solo por detrás.
  • Publica una rama sin fusionarla.

Términos del glosario introducidos

Empujar — دفع; publicar rama — نشر فرع; aguas arriba — الفرع المتتبَّع; avance rápido — تقديم سريع.

Transcripción del vídeo

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

Mostrar la transcripción
  1. Comience desde el punto de control exacto.
  2. Nombra la sucursal, índice y versión funcional.
  3. Prepare sólo la copia aislada del curso.
  4. Inspeccione el origen y el destino exactos.
  5. Avance rápido sólo cuando la ascendencia lo permite.
  6. Deténgase si las ramas reales se han divergido.
  7. Main ya coincide con el destino ahora.
  8. Publicar el nombre característica, no todas las ramas.
  9. Verifique el flujo ascendente propio de la característica.
  10. La publicación no fusiona la característica.
  11. Deje limpio el principal original.
  12. ¿Qué hace la publicación de F1?
  13. Envía esa referencia nombrada, no todos los archivos de trabajo.
  14. ¿Qué hechos se mantienen después del éxito canónico?
  15. Su empuje ya estaba alineado.
  16. Avance rápido principal/H6 a descendiente H7: ¿nueva confirmación de fusión?
  17. El árbitro pasa a un descendiente existente.
  18. Cambiar entrada: empujar el antiguo H6 servidor H7 antes de la alineación.
  19. La toma nativa salió1, preservando H7.
  20. Push dice que ya está hasta fecha. ¿Se publica la F1?
  21. El resultado de Main dice nada sobre otro árbitro.
  22. ¿Qué evidencia final se necesita?
  23. Compare los SHA reales para cada rama.
  24. Verifique el resultado real, no sólo un mensaje.
  25. Predecir la entrada modificada antes de actuar.
  26. Preservar el trabajo útil antes de la recuperación.
  27. Pruebe el punto de control antes de continuar.
  28. Mantener el resultado verificado para el siguiente paso.