Domina Git: guía de control de versiones para principiantes y más allá | Olha Al | Skillshare
Buscar

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Domina Git: guía de control de versiones para principiantes y más allá

teacher avatar Olha Al

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introduccion

      1:15

    • 2.

      Instalación y configuración de Git: cómo entender los ajustes globales y locales

      7:27

    • 3.

      Flujo de trabajo de Git explicado: área de trabajo, escenificación, repositorio y configuración de .gitignore

      7:06

    • 4.

      Renombra y elimina archivos en Git: usa los comandos de Git y los comandos de shell

      6:05

    • 5.

      Domina .gitignore: configuración, tipos de ajustes y gestión de información de usuario en Git Config

      4:48

    • 6.

      Fundamentos de GitHub: clonación de repositorios, cambios pushing & pulling y configuración de conexiones SSH

      5:09

    • 7.

      Cómo hacer cambios locales a GitHub, eliminar repositorios y configurar la conexión CLI

      8:11

    • 8.

      Cómo instalar la extensión de Git Graph en código VS y comandos básicos de la ramificación de Git

      5:06

    • 9.

      Cómo fusionar ramas en Git: guía paso a paso

      6:52

    • 10.

      Cómo resolver conflictos de fusión en Git: una guía completa

      7:12

    • 11.

      Técnicas avanzadas de refog y reajuste de Git: duro vs. suave

      6:26

    • 12.

      Técnicas avanzadas de Git: trabajar con modificar, aplastar y eliminar ramas (fusionadas y desfusionadas)

      6:08

    • 13.

      Trabajar con los registros de Git: personalizar la salida de registro y usar alias

      6:51

    • 14.

      Qué es la rebase de Git: qué es y por qué deberías usarla

      7:00

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

5

Estudiantes

--

Proyectos

Acerca de esta clase

Aprende Git desde cero y domina las técnicas avanzadas para el control de versiones. Este curso cubre todo, desde comandos básicos de Git hasta ramificación, fusión, rebase y trabajo con GitHub. Perfecta para principiantes y aquellos que buscan perfeccionar sus habilidades de Git. Al finalizar, tendrás la confianza para gestionar tu código como un profesional, colaborar en proyectos y resolver problemas comunes de Git.

Conoce a tu profesor(a)

Teacher Profile Image

Olha Al

Profesor(a)
Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introduccion: ¿Estás listo para subir de nivel tus habilidades de desarrollo? Ya sea que seas completamente nuevo en él o quieras llevar tus conocimientos al siguiente nivel, este curso es perfecto para ti. Aprende lo esencial desde cero y sumérgete en funciones más avanzadas a medida que avanzas. Git es el sistema de control de versiones estándar de la industria utilizado por desarrolladores de todo el mundo. Masterizar Git te ayudará a colaborar de manera más eficiente, realizar un seguimiento de los cambios y administrar tu proyecto con facilidad En este curso, te guiaré a paso a través de lo básico. Entendemos qué es, cómo usarlo y por qué es una herramienta esencial para los desarrolladores. Comandos principales, aprenda a cometer, crear ramas, fusionar y revertir cambios Colaboración, aprende a trabajar sin problemas con equipos usando GitHub. También descubrimos rebasar y cómo resolver conflictos. Es muy recomendable que sigas escribiendo los comandos tú mismo mientras trabajas el curso. Este enfoque práctico ayudará a solidificar tu comprensión y hacer que aprenderlo sea más efectivo La práctica es la clave para dominar la herramienta. Comienza a dominarlo hoy y luego bloquea infinitas posibilidades en tu viaje de desarrollo 2. Instalación y configuración de Git: comprensión de los parámetros globales y locales: Hola, chicos. Hoy cubriremos los siguientes temas. ¿Qué es GID? ¿Para qué se utiliza y cómo trabajar con él? Entonces, ¿qué es GID? Git es un sistema de control de versiones utilizado para administrar y rastrear cambios en el código de software y otros archivos. Permite a los desarrolladores colaborar en proyectos y realizar un seguimiento de diferentes versiones del código. En otras palabras, Git almacena todos los cambios realizados tu código en una base de datos especial llamada repositorio. Con GIT, podemos ver el historial del proyecto para ver quiénes hicieron los cambios, cuándo se hicieron y cuáles fueron esos cambios. Sin GID, los miembros del equipo realizarían cambios en sus copias locales de archivos y realizarían un seguimiento manual de diferentes versiones cambiando el nombre de los archivos o creando copias Los equipos a menudo pasaban archivos de lado a otro por correo electrónico o unidad de red compartida. Si dos miembros del equipo trabajaran simultáneamente en el mismo expediente, tendrían que coordinarse entre sí para evitar conflictos. Si se cometiera un error o se perdía un archivo, no habría manera de volver a una versión anterior del código La consola o interfaz de línea de comandos es una de las herramientas más primarias para trabajar con GID. Sin embargo, requiere que los usuarios tipeen comandos usando sintaxis y terminología específicas, lo que puede resultar intimidante para los principiantes. Agradecidamente, Git está integrado en el código de Visual Studio como una herramienta para el control de versiones Esta integración proporciona una interfaz gráfica de usuario para Git, lo que facilita a los desarrolladores el uso Git sin necesidad de memorizar la sintaxis de la línea de comandos El código de Visual Studio también ofrece una variedad de extensiones que mejoran la funcionalidad de Git. Puedes encontrar muchas extensiones de Git en el mercado de Visual Studio Code que ofrecen funciones condicionales. Para aquellos que prefieren la interfaz visual para Git, también hay herramientas de interfaz gráfica de usuario independientes disponibles para diferentes sistemas operativos. Algunas de estas herramientas son gratuitas mientras que otras son de pago. Empecemos por configurar Git. Primero, ve al sitio web de GIT e instala Git para tu sistema operativo. No lo voy a instalar porque ya tengo instalado Git. No es difícil. Sólo tienes que seguir las instrucciones. Para Linux, puedes usar sudo Opt Install Git. Para Mac, simplemente descargue y haga doble clic para Instalar. Antes de empezar a trabajar con Git, hablemos de algunas configuraciones. La configuración global se refiere a la configuración que se aplica a todos los repositorios de Git en su máquina Las dos opciones globales más comúnmente configuradas son tu nombre y tu dirección de correo electrónico. Estos se utilizan para identificar quién realizó cada commit en el repositorio. Al establecer tu nombre y correo electrónico globalmente en tu máquina, Git los registrará con cada confirmación. Esto permite a otros usuarios ver quién realizó cambios en el repositorio. Este comando nos permite ver la configuración global ya instalada y git. Aquí puedes ver nuestro nombre global y correo electrónico. Si necesitas un nombre o correo electrónico diferente para proyectos específicos, puedes usar configuraciones locales. Las configuraciones locales se aplican solo a un repositorio específico, mientras que la configuración global se aplica a todos los repositorios Puedes establecer los ajustes de configuración global usando el comando Git config con la bandera global mientras que los ajustes locales se establecen usando Git config sin la opción global dentro de un repositorio específico, ve al directorio de tu proyecto y establece el nombre y el correo electrónico solo para este repositorio. Puedes usar el comando Git config list para ver todos los ajustes, tanto globales como locales. Aquí puedes ver nuestro usuario global y los ajustes locales que acabamos de configurar. Este comando muestra solo los cambios en la configuración local. Aquí podemos ver el nombre de usuario y el correo electrónico específicamente establecidos para este proyecto usando este comando, pero con la opción, global, solo podemos ver la configuración global. Nuevamente, solo por recordatorio, configuración general con configuraciones locales y globales. Para desestablecer una configuración, use el comando Git config and set Por ejemplo, para eliminar el nombre de usuario local, utilizamos este comando. Tecleo Git config, dash dash set nombre de usuario. Esto eliminará el nombre de usuario local de la configuración, pero la configuración global seguirá estando en su lugar y se utilizará para las commits. Aquí podemos ver claramente que eliminamos el nombre de usuario y el correo electrónico. También podemos desestablecer los correos electrónicos globales usando el mismo comando, pero con el prefijo global Esto eliminará el correo electrónico global de la configuración. Cada sistema operativo, Windows, Mac o Linux, puede usar un formato diferente para las terminaciones de línea Estas diferencias pueden causar problemas al compartir archivos en un repositorio Git, especialmente cuando se trabaja en diferentes sistemas operativos. Para evitar este problema, puedes configurar Git para maneje el final de línea automáticamente. Esto asegura que los archivos permanezcan consistentes, libres de errores y se comporten como se esperaba, incluso cuando se realiza el check-out en diferentes sistemas operativos. Cuando se trabaja en un equipo de ambiente mixto, estas discrepancias pueden causar conflictos innecesarios de Div Smtch o problemas en la ejecución de código Al configurar Git para manejar las terminaciones de línea automáticamente, te aseguras de que los archivos sean consistentes en todas las plataformas, evitando errores y errores relacionados con las terminaciones de línea Por ejemplo, en Windows, puede configurar Git para que convierta automáticamente las terminaciones de línea al formato de Windows configurando el punto central Atoserf sistemas basados en Unix como Linux o Mac, puedes configurarlo para input, ya que esta configuración puede afectar a todos tus proyectos. Lo mejor es configurarlo globalmente para garantizar la uniformidad en todos los repositorios en los que trabaja Editores modernos como Vscde, Intelligda y texto sublime manejan las diferencias de línea automáticamente Detectan el formato CLF o LF y ajustan según sea necesario. Entonces, en muchos casos, no notarás ningún problema a menos que trabajes en equipos multiplataforma. Pero la configuración core out un Serra 11 Git sigue siendo una buena práctica para prevenir posibles problemas. En la siguiente lección, comenzaremos el proyecto desde cero y aprenderemos los comandos básicos de Git. Nos vemos. 3. Repositorio de trabajo en etapa en base git comm: Bienvenidos de nuevo, chicos. Comencemos nuestro primer proyecto, creamos un directorio y naveguemos hasta él usando la línea de comandos. Ejecuta el comando ls menos A para ver todos los archivos y directorios, incluidos los ocultos, y vemos que esta carpeta está completamente vacía. Para inicializar un repositorio Git en este directorio, usa el comando Git init. Esto crea una carpeta Git de punto oculto, que contiene todos los archivos y directorios necesarios para el repositorio. En este punto, el repositorio está vacío y aún no contiene ningún commit. La carpeta git es la columna vertebral de tu repositorio. Incluye la base de datos Git, que rastrea todos los cambios. El índice, que se utiliza para archivos de ensayo , archivos de configuración local. Aquí podemos ver los ajustes. También puede notar una carpeta llamada hooks. Estos son scripts que Git puede ejecutar automáticamente en puntos específicos de tu flujo de trabajo. Nota muy importante, nunca borres la carpeta git manualmente, ya que es fundamental que el repositorio funcione. Muy bien, vamos a crear un archivo llamado textixty. Lo siento, mi imaginación está un poco rezagada hoy. Si repetimos el LS menos un comando, podríamos notar otro archivo como el almacén de DC en macOS. Yo uso el sistema macOS. Entonces tengo esto. ¿Qué son los archivos de la tienda DC si estás usando macOS? Por lo que es posible que haya encontrado en estos archivos. Estos archivos son generados automáticamente por el sistema operativo macOS. Están ocultos de forma predeterminada y almacenan metadatos sobre una carpeta, como el tamaño y la posición de los iconos, las opciones de visualización de la carpeta, etc. Si bien estos archivos ayudan a macOS a recordar cómo te gusta ver tus carpetas. Pueden causar problemas al usar sistemas de control de versiones como Git. El comando Git status muestra el estado actual de tu repositorio. Proporciona información sobre los cambios realizados en archivos como archivos que están modificados pero que aún no escenificado o escenificado y listos para un En la salida del estado de Git, verás archivos que están preparados para Comit. Entre ellos, es posible que notes archivos no deseados como la tienda DCIS en macOS, que pueden abarrotar tu repositorio Para evitar que Git rastree la tienda de DC u otros archivos innecesarios, puede crear un archivo GIT Ignore global. Este archivo se aplicará a todos los repositorios de Git en su sistema Aquí te explicamos cómo configurarlo. Vaya a su directorio raíz y cree un archivo oculto para el Global. En DStore o cualquier otro archivo que quiera ignorar a este archivo Aquí puedes ver dos líneas. El primero, Distore ignora solo la coincidencia exacta del DStorfle El segundo, Distor ignora cualquier archivo que comience con DStore y seguido exactamente de un Potencialmente puede ser Distor uno o Distor dos. Esto proporciona protección adicional contra nombres de archivos similares pero ligeramente alterados. Y por último, configura Git para usar este archivo global Ignorar. A partir de ahora, DesisOrfles será ignorado en todos tus Puedes verificar esto ejecutando el comando Git status. El DesisorFle ya no aparecerá en la lista de Vamos a agregar y organizar archivos en Git. Vamos a crear otro archivo, escribir algún contenido en él, como hola y verificar el estado usando el estado de Git. Git te mostrará los archivos que han sido modificados o creados pero que aún no se han escenificado para una Comi Para almacenar archivos en etapas, usa el comando Git add. Estas son varias formas de usar este comando. La primera etapa de archivos específicos. Aquí enumero todos los archivos que quiero agregar. La segunda etapa de todos los archivos con una extensión específica. Y aquí utilizo el punto Asterix y la extensión. Quiero agregar todos los archivos con esta extensión. Y la tercera etapa todo cambia a la vez, y aquí uso punto. En este ejemplo, escenifiquemos todos los archivos Tixti. Ahora el estado de Git mostrará los archivos como preparados y listos para Commit Hagamos nuestro primer compromiso. Para guardar los cambios, necesitamos crear un commit. Usa el comando Git Commit con la opción menos M para incluir un mensaje que describa los cambios. En mi caso, será commit inicial con archivo de texto. GID creará un nuevo commit con un hash cod único que contiene una instantánea de los archivos por etapas o cambios si lo fueran Después de esto, ejecute en estado GID y muestre que el directorio de trabajo está limpio, es decir, todos los cambios se han guardado. Voy a explicar esquemáticamente lo que acabamos de hacer. En Git, hay tres áreas principales donde los archivos se almacenan y administran el directorio de trabajo, el área de preparación, el índice y el repositorio. El directorio de trabajo, este es el directorio en su máquina local donde realiza cambios en los archivos de su proyecto. Cualquier modificación realizada aquí no es rastreada automáticamente por Git. El área de estadificación o índice. Aquí es donde agregas los cambios de tu directorio de trabajo que planeas incluir en tu siguiente commit. Piense en ello como un área de búfer o preparación donde puede revisar y afinar los cambios antes comprometerlos y el repositorio. Aquí es donde Git almacena el historial completo de todos los cambios realizados en tu proyecto, incluidas todas las versiones comprometidas de tus archivos. Actúa como una base de datos que contiene instantáneas de su proyecto en varios momentos en el tiempo Entonces, en resumen, el directorio de trabajo es donde se realizan los cambios. El área de preparación es donde se preparan esos cambios para un comite, y el repositorio es donde GID guarda el historial de todos los cambios Comprender estas tres áreas es crucial para administrar su proyecto de manera efectiva con GID. En la siguiente lección, pasaremos a algunos casos prácticos de uso. Mar. 4. Cambiar nombre y eliminar archivos en Git: usar comandos Git y comandos de Shell: Bienvenidos de nuevo, chicos. En la última lección, terminamos creando y comprometiendo proyecto inicializado Vamos a crear otro cambio y escribir algo en el archivo TXT. El comando echo text agrega el texto al archivo TiKt. Ejecutar el estado de Git revelará nuestros cambios. Aquí podemos ver mensaje que no se agrega ningún cambio para cometer. Entonces agreguemos estos cambios. En lugar de usar dos comandos separados, Git add, y luego GIT Commit, podemos realizar ambas acciones en un solo comando. indicador Menos A estabiliza todos los archivos modificados, excluyendo los archivos U, y el indicador menos M agrega un mensaje de confirmación. Vamos a que aquí resolvimos errores. Después de ejecutar este comando, Git procesará y guardará todos los cambios en un solo paso. Ahora, el estado de Git confirma que no hay nada que confirmar porque todos los cambios se guardan. Hemos hecho nuestro segundo compromiso con un solo comando. Podemos ver las dos commits con el comando Git log. Entonces consideremos eliminar archivos y Git. El comando LS muestra lo que tenemos en esta carpeta. El comando RM es un comando estándar utilizado para eliminar archivos y directorios del sistema de archivos. Cuando usas RAM para eliminar un archivo, se elimina permanentemente de tu sistema, pero Git no está al tanto de esta eliminación. Por ejemplo, eliminemos el texto del archivo con Command RM. Después de ejecutar esto, los datos de GIT mostrarán que el archivo ha sido eliminado, pero los cambios aún deben ser escenificados y comprometidos Entonces escenifica la eliminación. Los archivos por etapas y Git están marcados en verde. Entonces, cuando veas archivos verdes y git, están listos para ser comprometidos y luego cometer los cambios. Ahora vamos a eliminar un segundo archivo. Pero esta vez, usaremos el comando Git RM específico de Git. A diferencia de RM, GITRM elimina el archivo tanto del directorio de trabajo como del repositorio en un solo paso al tiempo que rastrea la eliminación en el historial de confirmación Notarás que omitimos el paso de agregar Git, pero los cambios están resaltados en verde Eso significa que son buenos para ir a la siguiente confirmación. Por eso yo uso aquí solo menos bandera M. Bueno, en resumen, usa RM para eliminar archivos solo del sistema de archivos y luego actualizar manualmente Git. Usa GID RM para eliminar archivos y registrar la eliminación en Git en un solo paso. Entonces, por ahora, nuestra carpeta está vacía. Acabamos de borrar dos archivos que teníamos. Con el comando touch, creo nuevo archivo app punto py. Después agrégalo al escenario. Comprometer. Cuando haces una confirmación, es posible que veas el mensaje, tu nombre y correo electrónico se configuraron automáticamente. En la lección anterior, discutimos configurar Git con tu nombre y correo electrónico usando ajustes globales o locales. Dado que configuramos los ajustes globales y locales en la lección anterior y luego desconfiguramos el correo electrónico y el nombre, Git ahora está usando los valores de correo electrónico y nombre generados automáticamente Para evitar este mensaje y asegurar un seguimiento adecuado de las contribuciones, puedo configurar el nombre de usuario y el correo electrónico con estos comandos. Pero ahora mismo para este ejemplo, no lo necesito, así que lo dejo como está. Revisa la carpeta y podemos ver nuestro archivo. El comando MV es un comando de propósito general para nombre o mover archivos en el sistema de archivos Si bien funciona para la administración de archivos, sí notifica a Git sobre los cambios. Si realizo este comando, Git tratará esto como una eliminación de la aplicación Pi y adición de la misma requiriendo la puesta en escena manual y la confirmación. Entonces edito y me comprometo. Creo otro archivo app dot pie, lo agrego al escenario y lo cometo. Quiero mostrarte la segunda forma de cambiarle el nombre. Así que por ahora, tenemos dos archivos renombrados II Dotpy y casi creados ab dot Cambiemos el nombre de app dot pi a coordtpy. Alternativamente, puede usar el comando GD&V específico de GID, que simplifica este proceso Cambia automáticamente el nombre del archivo en el directorio de trabajo y actualiza los registros de Git preparando los cambios para la puesta en escena en un solo paso Realizo Comando LS, y podemos ver nuestro archivo renombrado coedtpy y el primero Entonces tenemos ventajas del comando GID y V. Mantiene intacto el historial del archivo renombrado en el repositorio de Git Además, simplifica el proceso combinando los pasos de cambio de nombre y puesta en escena Después de ejecutar Git y V, el archivo está listo para una confirmación y estado de Git mostrará la operación de cambio de nombre por etapas Al comprender estos comandos, puede manejar las adiciones, eliminaciones y renombraciones de archivos de manera más eficiente mientras mantiene el control de versiones adecuado Ver en la siguiente lección. 5. Dominio de .gitignore: configuración, tipos de parámetros y gestión de la información del usuario en Git Config: Bienvenidos de nuevo, chicos. Discutamos expedientes que no deberían ser comprometidos. Cuando trabajas en un proyecto, a menudo encontrarás archivos y directorios que no necesitan ser incluidos en tus commits. El archivo GID Ignorar ayuda a gestionar esto. El archivo Ignorar GID es un archivo de configuración utilizado por Git para definir y rastrear archivos y directorios que deben ignorarse y excluirse del control de versiones. En una lección anterior, configuramos un archivo Gig Nur global para archivos de sistema que no queremos incluir en ninguno de nuestros proyectos Y en esta lección vamos a crear un GiignerFle específicamente para Primero, creo un archivo oculto llamado punto GiteGNR en el directorio raíz de nuestro proyecto El GIIgOlfle se puede colocar ya sea en el repositorio a través directorio o en subdirectorios específicos, y afectará a todos los archivos y directorios dentro de su Puedes encontrar un montón de ejemplos de Giegnor en Github. Estos ejemplos varían según el proyecto y el lenguaje de programación, ya que cada uno tiene archivos o directorios específicos que no deben incluirse en el repositorio compartido del proyecto. Por ejemplo, muchos lenguajes de programación generan archivos temporales, registros o artefactos de compilación que son innecesarios para el control de versiones. GitHub incluso proporciona plantillas Gitegnor específicas del idioma para varios frameworks Entonces consideremos la sintaxis común y GitegNorfils. Al usar efectivamente GiegnoFle, puede personalizar qué archivos y directorios debe y directorios Se pueden ver algunos ejemplos de patrones comunes. Este patrón significa que se todo el contenido del directorio TMP, ignorará todo el contenido del directorio TMP, incluidos todos los subdirectorios y archivos O podemos ignorar archivos por extensión. Este patrón ignorará todos los archivos con la extensión de registro. Mediante el uso de un signo de exclamación, puede especificar una excepción para la En este caso, todos los archivos de registro serán ignorados excepto el registro de depuración. El asterisco actúa como comodín que coincide con cero o más Por ejemplo, asterisco punto TiKT ignorará todos los tixTfles El asterisco Wilder coincidirá con todos los archivos dentro de un coincidirá con todos los archivos dentro de un directorio, pero no con sus subdirectorios. Suficiente teoría, practiquemos. Para demostrarlo, limpio el directorio del proyecto y luego agrego el directorio del proyecto y luego agrego un directorio temporal llamado TMP y TikTFLE Y además, escribo hola al TikTFLE dentro de la carpeta Temp Inicialmente, el directorio TEM y su contenido aparecen en la salida de estado GIT. Si decidimos que este directorio no debe incluirse en ningún comits, podemos escribir la siguiente regla en el archivo Git Ignorar El comando ECO crea o sobrescribe GitegNorfle En nuestro caso, escribo TAM dos Git Ignore, y esto significa que GID ya no rastreará ni incluirá el directorio TAM en commits, incluso si se realizan cambios dentro de él El comando CAT dot Git Ignorar muestra el contenido del archivo Git Ignorar en el terminal. Después de guardar este patrón y volver a ejecutar el estado Git, el directorio TAM ya no es visible. Esto asegura que no cometeremos accidentalmente archivos innecesarios del directorio TAM. Ahora agregaremos y comprometeremos nuestros cambios. Sin embargo, cuando lo hago, nos encontramos con un mensaje preocupante porque el correo electrónico y el nombre de usuario para este proyecto no han sido configurados. Como dije antes, GID genera automáticamente los valores predeterminados de correo electrónico y nombre de usuario, pero es mejor configurarlos manualmente. Por ahora, vamos a configurarlos localmente para este proyecto. Primero, asigno un nombre de usuario. A continuación, configuré un correo electrónico. Para demostrarlo, creo un nuevo archivo de prueba dt, y comprometo los cambios. Ejecutar el comando de registro de Git confirma que el nuevo nombre de usuario y correo electrónico aparecen en el historial de viajes, y los mensajes de advertencia anteriores se han ido Nos vemos en la siguiente lección. 6. Fundamentos de GitHub: clonación de repositorios, cambios mediante push & pull y configuración de conexiones SSH: Bienvenidos, B, chicos. Git no es solo un sistema de control de versiones. Es un sistema de control de versiones distribuido, lo que significa que no necesitas un servidor central para funcionar. Cada desarrollador tiene su propia copia local de Git que almacena todo el historial de desarrollo del proyecto. Cuando los desarrolladores hacen cambios, primero los graban localmente en sus computadoras. Entonces, si así lo desean, pueden compartir sus cambios con compañeros o recibir actualizaciones de otros. Sin embargo, en proyectos del mundo real, generalmente se crea un servidor central para mayor comodidad. Este servidor actúa como un centro de colaboración donde todos los desarrolladores pueden enviar sus cambios y obtener actualizaciones de otros. Cualquier computadora remota con acceso adecuado puede servir como servidor Git. Plataformas como GitHub, Gitlab y Bitbucket son populares soluciones basadas en web para alojar repositorios Git Estas plataformas proporcionan infraestructura para almacenar código, administrar el acceso y facilitar la colaboración en proyectos usando Git. Además, cada plataforma tiene sus características únicas, atrayendo desarrolladores y equipos de diversas habilidades y necesidades. Hoy, nos centraremos en Github y aprenderemos a crear repositorios de eliminación y clonación, así como configurarlos como un sabio para una comunicación segura Así que empieza por ir al sitio web de GitHub y registrarte para obtener una cuenta. Ingrese su dirección de correo electrónico, que será utilizada para el registro de la cuenta. Haz clic en el botón Continuar y confirma tu correo electrónico. Como ya tengo una cuenta, simplemente iniciaré sesión y procederé a crear un nuevo repositorio. Para crear un nuevo repositorio, siga estos pasos. Especifique el nombre del repositorio. Debe ser único. Establece visibilidad, elige entre público o privado, público, es visible para todos, haciendo posible que otros clonen tu repositorio. Los repositorios públicos son ideales para exhibir carteras o compartir proyectos de código abierto Privado restringido a usted y a sus colaboradores, apto para trabajo comercial o privado. También tenemos el archivo léeme, que normalmente contiene instrucciones sobre el proyecto y su propósito. Generar archivo punto GTI Nor, lo que ayuda a excluir los archivos necesarios de ser rastreados Sí, Github puede generar automáticamente un Gitegnorfle adaptado al lenguaje de programación que esté Ahora, hemos creado con éxito un repositorio Github con algunos archivos iniciales. Nuestra siguiente tarea es clonarlo a nuestra computadora local. Para clonar repositorio a través de tu computadora local, primero, abre tu repositorio en Github. Haga clic en el botón de código y seleccione un enlace para clonar el proyecto. Tendrás tres opciones HTTPS, SSH o Github CLI Nos centraremos en clonar usando SSH porque es seguro y elimina la necesidad ingresar repetidamente tus credenciales Para clonar a través de SSH, es necesario generar una clave SSH y agregarla a En su computadora local, genere una clave SSH usando el terminal Genero claves SSH usando el comando SSH Kagan. Se utiliza para todos los sistemas Macs que quieras para Windows. El proceso es el mismo en todas las plataformas con opciones para diferentes tipos de claves. Durante el proceso, se le preguntará dónde guardar la llave. Puede especificar una ubicación personalizada o aceptar el directorio predeterminado. Como ya tengo una clave generada, me saltaré este paso. Después de generar la clave, navegue hasta el directorio donde se guardó. Encontrarás dos archivos, la clave privada, mantenla segura y la pública. Esto es lo que agregaremos a Github. Copiar el contenido del archivo de clave pública. Vaya al Github, a la configuración SSH y haga clic en Nueva clave SSH Asigne un nombre descriptivo, pase la clave pública y confirme ingresando su contraseña de Github. Ahora se configura el eje SSH. Clonemos el repositorio. Copia el enlace SSH de tu repositorio Github, abre la terminal y navega hasta el directorio donde quieres clonar el proyecto y ejecuta el siguiente comando Una vez completado, verás los archivos del proyecto en tu computadora local exactamente como están en el repositorio de Github. Eso es. Has creado correctamente un repositorio en Github. Nos vemos en la siguiente lección. 7. Cómo hacer cambios locales a GitHub, eliminar repositorios y configurar la conexión CLI: Bienvenidos de nuevo, chicos. Repasemos rápidamente cómo eliminar un repositorio Github del servidor remoto Para eliminar un proyecto en Github, vaya a la configuración del repositorio. Desplázate hacia abajo para encontrar la opción de eliminar repositorio, y finalmente confirma que realmente quieres eliminarlo. Eliminar el repositorio en Github no afecta tu copia local. Desde que clonas el repositorio, puedes seguir trabajando con él localmente. Ahora, vamos a crear rápidamente un nuevo proyecto, nombra proyecto de prueba. Y usa la CLI de Github en lugar del enlace SSH. Primero, necesitarás instalar la CLI de Github. Consulte la documentación de la CLI de Github para obtener instrucciones de instalación Github CLI es una herramienta de línea común que interactúa con Github desde el terminal, mientras que las interfaces gráficas se utilizan a menudo para Saber usar la CLI de Github es igualmente importante. Por ejemplo, los servidores normalmente no tienen interfaces gráficas, y es posible que deba trabajar a través de la consola. Aquí pueden ver, ya que repito todos los pasos necesarios de la documentación. Al configurar la CLI de Github, se le harán algunas preguntas durante el proceso de configuración Una de las preguntas es si quieres conectarte a un servidor Enterprise Github o usar el Github predeterminado. Dado que la mayoría de los usuarios trabajan con Github, puedes elegir no usar Enterprise Git a menos que estés trabajando en organización que aloje su propia instancia de GitHub Enterprise. A continuación, se le pedirá que seleccione el método de autenticación. Debe elegir SSH para la conexión. SSH es una forma segura y conveniente comunicarse con el servidor Github, lo que le permite empujar, extraer e interactuar con sus repositorios sin ingresar su credencial Después de seleccionar SSH, la CLI le pedirá que utilice una clave SSH publicada existente o que genere una nueva. Y darle un nombre para identificar el dispositivo. Una vez que hayas nombrado la clave, la CLI de Github cargará automáticamente tu clave SSH pública a tu cuenta de GitHub Es posible que se te pida que te autentiques usando tus credenciales de Github, como volver a ingresar un código de verificación único para confirmar la acción Después de este paso, tu configuración de la CLI de Github está completa y puedes asegurar clonar, empujar, extraer e interactuar con repositorios de Github usando Cuando clonas un proyecto usando este comando, la conexión a GIT Hub se establece automáticamente. El comando usa el protocolo Git para recuperar todo el repositorio a tu computadora Entonces, una vez que el comando se ejecute con éxito, tendrá un clon completo del repositorio y podrá comenzar a trabajar localmente. Aquí navegé hasta el directorio del proyecto clon. Para verificar la conexión al repositorio remoto, usa el siguiente comando Git remote menos V. Este comando te mostrará la conexión al repositorio remoto. De forma predeterminada, se llama origin, pero se puede asignar un nombre personalizado al clonar un proyecto. Ahora aprendamos cómo enviar cambios al repositorio remoto de Git. Vamos a hacer algunos cambios locales y empujarlos al repositorio remoto de Git. Modificaré el archivo léeme y agregaré algunos cambios. Agregue estos cambios al área de espera y compromételos. Así que aquí puedo ver nuestro commit para empujar estos cambios al repositorio remoto, ejecutar git push origin main. Aquí, orgion es el nombre de la conexión, y principal es la rama a la que empujamos nuestros cambios Después de impulsar con éxito los cambios, puedes visitar GitHub para ver las actualizaciones. Podrás ver los detalles de la confirmación y ver los cambios exactos. Con líneas añadidas marcadas en verde y líneas eliminadas en rojo. Hagamos los cambios de extracción inversa del repositorio remoto a su proyecto local. Modifico el archivo ReadMe en GitHub, que creará un nuevo coamit Ahora en tu proyecto local, verás dos kamits mientras estás en GitHub, verás tres amits Para obtener los cambios de Github, ejecuta el comando Esto publica las últimas actualizaciones de la sucursal principal remota en tu repositorio local. Después de la extracción, el archivo Léeme en su computadora local reflejará los cambios realizados de forma remota. Consideremos otro escenario. Tienes un proyecto localmente en tu computadora, y ahora quieres subirlo a Github para compartirlo con otros. Comienza creando una carpeta e inicializándola con Git, como hicimos en lecciones anteriores Yo creo Test TikTFLE y escribo hola en él. Y luego, por supuesto, sumar a esta etapa y comprometerla. Después de hacer algunos cambios y comprometerlos localmente, estás listo para subir el proyecto a Github. Para subirlo a Github, crea un nuevo repositorio en Github. Esta vez, no agregues Read M file o Git Ignore. Github te proporcionará instrucciones específicas para subir tu proyecto. Acude a tu terminal y ejecuta estos comandos uno por uno. El primer comando establece una conexión con el repositorio remoto. El segundo comando asegura que tu repositorio local use la rama principal. Si tu proyecto usa master, este paso lo renombra a main El tercer comando empuja los cambios al Github. La opción menos U vincula tu sucursal principal local con la rama principal remota, lo que facilita la inserción de cambios en el futuro sin especificar parámetros adicionales. Después de empujar, actualiza tu página de GitHub para ver el proyecto, tus archivos y confirmaciones ahora deberían aparecer en el repositorio. Así que hemos cubierto cómo eliminar el repositorio, crear uno nuevo, clonarlo usando GitHub CLI, push changes, pull updates, y aplaudir el proyecto local a Has hecho un gran trabajo. Nos vemos en la siguiente lección. 8. 7 crea ramas: Bienvenidos de nuevo, chicos. Hoy, profundizaremos en trabajar con sucursales y commits. Empezamos desde el principio. Proyecto Totalmente Nuevo. Yo creo directorio vacío. Ejecutar el estado de Git aún no mostrará nada porque no hemos inicializado el proyecto Primero, haré un simple cambio escribiendo hola al TikTifle Read Me Este archivo se creará automáticamente con el comando. Solo recuerda hacer eco de este comando, escribe hola a la tixTifle Léame A continuación, el comando Git init inicializa el proyecto, creando una carpeta git oculta Ahora Git comenzará a rastrear nuestros cambios. Para confirmarlo, ejecute s menos A para mostrar tanto los archivos ocultos como los regulares. Verás la carpeta Git y el archivo readmitixty. Ejecutar el estado de Git ahora muestra nuestros cambios que deben agregarse y comprometerse. Vamos a encargarnos de esto. En el código de Visual Studio, hay una extensión llamada GID graph, que proporciona una interfaz gráfica conveniente para ver el historial de confirmaciones. Para instalarlo, abra el panel de extensiones, en código VS, busque gráfico GID e instálelo. Mapea visualmente sucursales, cambios, fusiones y más Una vez instalado, notará un icono de gráfico GID en el panel inferior. Al hacer clic se muestra el estado actual del proyecto. Aquí vemos que estamos en la rama principal, la rama predeterminada. El commit inicial etiquetado en él proyecto, haciendo clic en el Commit nos permite ver todos los archivos cambiados en ese Commit. Por ejemplo, al hacer clic en Rhythm txt muestra exactamente lo que se agregó. Ahora voy a crear ramas usando múltiples métodos. En primer método, ejecute el comando Git branch, feature one, para crear una nueva rama llamada feature one. Después usando el comando GeTheKoFeature uno, cambiamos Consulta la gráfica para ver que ahora estamos en la rama fit one. En esta rama, escribo el proyecto de línea en el TikTifle. Aquí está. Después agregue estos cambios y cometerlos. Hagamos otra. Escribo la tercera línea en TikTifle y esta línea se comprometerá A después de hacer otra confirmación, veremos ambas confirmaciones en la función una rama en el gráfico de Git. Ahora voy a crear otra rama, pero para esto, voy a usar otro comando. Con el comando Git checkout main, cambio a la rama principal. Entonces ahora mismo estamos en la rama principal. Solo para recordar, aquí no tenemos estos dos commits anteriores. Yo uso el comando Got menos B y luego nombre de mi segunda rama cuentan con dos. Esto crea y cambia a una nueva rama simultáneamente. En la función a rama, crearé una nueva aplicación de archivos Python dot py y agregaré una sencilla función de impresión Hello World. Puedes crear cualquier archivo y escribir algo en él. Depende de ti. Git status muestra el archivo que necesitamos d y commit. Después de poner en escena y comprometer esto, veremos el primer Gamit para la característica dos en la gráfica GID Entonces, por ahora, tenemos tres ramas característica principal una y cuentan con dos. Main tiene solo un proyecto commit innit. Como nos ramificamos de main, la nueva característica de rama uno comienza desde la misma confirmación inicial del proyecto principal init e incluye dos confirmaciones adicionales que acabamos de hacer en la característica uno Comete uno y Comete dos. Lo mismo con la característica de rama dos. Esta rama tiene el proyecto inicial commit int y el commit que acabamos de hacer. Comprometer uno, característica dos. 9. Fusiona 8 ramas en diff: Averiguemos cómo fusionar ramas. fusión de ramas Git es el proceso de combinar cambios de una rama a otra, normalmente fusionando una rama de entidad en rama principal Esto integra las actualizaciones y garantiza que todos los cambios se consoliden en una sola rama. Al presionar la flecha hacia arriba, puedes repetir los comandos anteriores que ejecutaste en la consola. Volveré al comando donde escribí hola mundo al archivo app punto pi. Voy a cambiar texto para cometer dos. Y vuelva a ejecutar el comando, escribiendo una línea diferente en el archivo. Si abro el archivo app punto py, podemos ver la segunda línea, simplemente dit. Además, si presiono cambios no comprometidos en Gig graph, podemos ver este archivo, y nuevamente, nuestra segunda línea con plus que acabamos Después agrego estos cambios y los comprometo. Estoy haciendo esto para que podamos ver más commits en cada rama. Esto lo hará más claro cuando fusionemos estas ramas, ya que podremos ver todos los commits que se hicieron. Entonces ahora mismo, hice los cambios en la característica de rama dos. Después me cambié a la rama principal. De inmediato, notamos que falta nuestro AbdtPifle. Esto se debe a que el ABDTPifle fue creado en la rama característica dos, y ahora estamos en Aún no hemos fusionado los cambios. Si abrimos nuestro ritmo txt, también veremos solo el saludo inicial. Escribimos desde el principio. Para ver todas las sucursales, el comando Git branch nos muestra todas las sucursales que actualmente tenemos localmente. Esto incluye nuestra rama principal indicada por el asterisco y las dos ramas que creamos Si estás trabajando y no puedes recordar qué ramas ya se han fusionado, hay un comando útil rama Git, dash dash, fusionado. Esto muestra las sucursales que ya se han fusionado con la rama actual. En nuestro caso, todavía no se ha fusionado nada, así que solo vemos nuestra sucursal principal. También hay comando para mostrar ramas no fusionadas, rama Git, dash dash, no fusionadas Las listas de las ramas que tienen cambios que aún no se han fusionado en nuestra rama principal. Ahora, estando en la rama donde planeamos fusionar los cambios, ejecutamos el comando git merge y especificamos la rama desde la que fusionaremos los cambios. Empecemos con la primera característica de rama uno. Después de fusionarse, vemos dos líneas adicionales en nuestro archivo léeme Tixty A continuación, pasamos a la rama característica dos y comenzamos a fusionar todos los cambios de la segunda rama a la rama principal Nuevamente, al estar en la rama principal, ejecutamos el comando kit merge y especificamos, por supuesto, la rama característica dos. Aquí puedes ver el mensaje. No te preocupes, se crea un nuevo commit durante la fusión. Puedes cambiar el mensaje de commit o dejarlo como está. Desde que estamos aprendiendo a trabajar para conseguir el terminal, ha abierto un editor de texto. El tuyo podría ser nana o VIM dependiendo de lo que esté instalado En mi caso, es editor de VIM, por lo que este comando significa escribir y salir En este punto, hemos logrado fusionar ambas sucursales en nuestra sucursal principal. Ahora, todos los cambios que hicimos están en la rama principal. En la gráfica de Git, podemos elegir qué rama específica queremos para ti. Si hay muchas sucursales, podría ser difícil rastrear todas las commits para cada una. Entonces aquí podemos elegir uno u otro y ver claramente todos los commits en esta rama. El comando Git log muestra todos los commits que tenemos actualmente en nuestra sucursal. Si quieres ver el historial de Commit en formato gráfico, puedes usar Git log graph. Esto mostrará algo similar a lo que vimos en la interfaz gráfica donde podemos ver claramente nuestras commits y las commits merge de la característica uno y la característica dos. El comando Git log D graph es otra forma de visualizar todo lo que hemos hecho. Supongamos que está trabajando en un servidor sin interfaz gráfica. En ese caso, puedes ver la misma información directamente desde el terminal ejecutando el comando Git log. Poder trabajar con la terminal es muy útil. Imaginemos que la característica uno y característica dos son dos características. Estamos desarrollando para nuestra app. Si queremos ver en qué se diferencia el estado de la característica uno de la característica dos, podemos cambiar a la rama feature one y usar el comando Git DIV para comparar las diferencias. Especificamos la rama con la que queremos comparar, en este caso, cuentan con dos. Entonces aquí estamos comparando y buscando diferencias entre dos ramas, característica uno y característica dos. Veremos que faltan los ABDTPifles en la característica uno, y también tenemos dos líneas adicionales en el En este ejemplo, el comando Gi Div nos muestra las diferencias entre las dos ramas, destacando lo que está presente en la característica dos, pero que falta en la característica uno. Si queremos comparar el commit actual en nuestra rama con un commit específico, podemos volver a usar el comando Git Div. Pero esta vez, necesitamos especificar el commit con el que queremos compararlo. Para ello, primero necesitamos encontrar el hash del Camt con el que queremos comparar Podemos ver los hashes de Commit ejecutando Git log o simplemente viendo Git graph Cada commit tiene único, pero no tenemos que escribir el hash completo. Nos permite utilizar los primeros caracteres. Normalmente primero siete, que suele ser suficiente para identificar a Cami una vez que tenemos el hash, podemos ejecutar este comando Y esto nos mostrará las diferencias entre nuestro estado de trabajo actual y el commit especificado. Por ejemplo, aquí en la terminal, podemos ver que en el estado actual, tenemos adicional de línea, Commit dos. Podemos ir al Giggraph y ver lo mismo. Presiono la función uno, Commit dos. Este es el Commit actual que tenemos ahora mismo. Y aquí podemos ver esta línea. En la siguiente lección, seguiremos trabajando con ramas y commits. S. 10. Resolver conflictos de fusión en Git: una guía completa: Bienvenidos de nuevo, chicos. Sigamos trabajando con sucursales. Actualmente estoy en la rama característica uno, que creé a partir de la rama principal. Aquí voy a hacer algunos cambios. Usando este comando, agregaré una línea a Read MitixTifle. Imaginemos que hemos estado haciendo múltiples commits, y por alguna razón, ahora necesitamos verificar los cambios no comprometidos en tu directorio de trabajo en comparación con el último Gamit En la lección anterior, aprendimos cómo el comando GI Div funciona el comando GI Div con ramas para mostrar diferencias. También analizamos los commits específicos usando sus hashes. Hoy, te voy a mostrar cómo funciona Git Div con los cambios en tiempo real. Quiero ver qué he modificado y qué aún no se ha agregado al área de espera. Para ello, usaré el comando GI Div. Este comando muestra los cambios no comprometidos en el directorio de trabajo en comparación con el último commit en esta rama Estos cambios no se han agregado al área de espera. Si abro el archivo de texto, léeme Tixty, veremos la línea que acabo de agregar con el comando en la terminal Después de ver la línea agregada, ejecutaré el comando, obtendré diff, dash, dash, escenificado Pero esta vez, no veremos ningún resultado porque este comando muestra las diferencias entre los cambios que ya se han escenificado y la última versión comprometida Entonces, para ver la diferencia entre área del escenario y la última versión comprometida, necesito agregar todos nuestros cambios al área del escenario. Voy a agregar estos cambios al área de puesta en escena, pero sin comprometerme todavía. Bueno, imaginemos que tomamos un descanso para el café y al regresar, nos olvidamos de lo que habíamos agregado y escenificado Para comprobar lo que está escenificado, pero aún no comprometido, podemos usar Div da da escenificado Este comando muestra la diferencia entre el último commit y los cambios que se escenifican, pero aún no se han comprometido. Ahora podemos revisar estos cambios antes de realizar el commit. Una vez que cometemos los cambios, ejecutar Div escenificado de nuevo no mostrará nada ya que no hay más diferencias entre los cambios de etapa y el último Gamit Del mismo modo, ejecutar Git div tampoco devolverá ninguna salida. Y no quedan cambios no comprometidos en el directorio de trabajo A continuación, cambiemos a la rama principal y fusionemos los cambios de la característica uno. Recuerda, al fusionar ramas, necesitas estar en la sucursal que quieres fusionar los cambios Como queremos fusionar la característica uno en la media ejecutamos Git merge, feature one. Esto crea un commit de fusión donde podemos modificar el mensaje de commit o dejarlo como está. Anteriormente, también creamos otra rama llamada característica dos. Ahora, voy a cambiar a esa sucursal. En la característica dos, tenemos tres commits el commit inicial, que fue heredado de la rama mía cuando creamos la rama featured two. Y dos compromisos adicionales que se hicieron específicamente para esta rama. Adicionalmente, tenemos una nueva app de archivos en Pi, y en Red Mitixt solo vemos el texto hola Por lo que el estado de la rama característica dos es completamente diferente de la característica uno o ramas principales. Ahora agregaré otra línea al archivo Redmtixt y Después de esto, volveré a cambiar a la rama principal e intentaré fusionar estos cambios. Al estar en rama principal, ejecuto el comando git merge feature two. Y vemos que nos encontramos con nuestra primera resolución de conflictos Git. Específicamente, agregamos una línea en la entidad a ramificar, pero ya hay algo escrito en la rama principal ya que ambas líneas existen en un mismo lugar, entran en conflicto entre sí. Entonces, para completar nuestra fusión, necesitamos resolver estos conflictos. Vamos a los expedientes, que entran en conflicto, los identificamos y los arreglamos. Elegimos lo que queremos conservar. Cuando abro el archivo, podemos ver una presentación visual con marcadores que identifican el estado actual. A continuación, podemos ver los cambios de la característica a la rama que estamos a punto de fusionar. Resulta que dos líneas de dos ramas diferentes existen en la misma ubicación, pero contienen contenido diferente. En casi cualquier editor, puede optar por aceptar todos los cambios entrantes. Conserva lo que tienes actualmente en la sucursal y rechaza los cambios entrantes o mantén todo fusionando ambas versiones En este caso, podrás resolver automáticamente estos conflictos, dejando toda la información de ambas ramas. También puedes comparar estos cambios y ver exactamente qué es lo que hay que resolver. A la derecha, tenemos nuestra característica a rama de la que estamos fusionando cambios, y en la izquierda, tenemos nuestra rama actual Al hacer clic en Resolver en el Editor de marzo, se abre en gráfico GIN. Esto le permite resolver manualmente el conflicto durante la fusión de sucursales En el editor de marzo, puedes revisar las diferencias entre versiones conflictivas del archivo y elegir qué cambios conservar Después de resolver conflictos y guardar los cambios, se completa el proceso de fusión de sucursales Ya que no todos trabajan con GID graph, voy a resolver los conflictos directamente en el propio archivo. Planeo mantener la línea de la rama característica dos y también mantener todo de la rama principal. Entonces vamos a los archivos con conflictos, los identificamos y los arreglamos. Elegimos qué conservar. Y si se necesitan ambos cambios contradictorios, dejamos todo menos hacer ligeras modificaciones Ahora ejecutando el estado de Git nos mostrará los nuevos cambios. Hicimos estos cambios manualmente en el archivo Rhythmtixti, manteniendo todo desde la rama principal y agregando cambios de la rama y agregando cambios Agregamos los cambios y hacemos un Camite. En Giddigraph, es muy conveniente ver la diferencia Ahora, en la rama característica dos, miramos el archivo Rhymitixty y podemos ver nuestro mensaje de saludo junto con nuestro En tanto, si cambiamos a la rama principal y comprobamos el Rhythm TixTifle, mostrará todo lo que acabamos de hacer, los cambios anteriores y la última línea que agregamos de la característica a la En la siguiente lección, te presentaré con un comando muy útil. Nos vemos. 11. 10 reset de reflog hard soft: Bienvenidos de nuevo, chicos. Ahora quiero presentarles un comando muy útil, pero necesito hacer algo de preparación primero. Así que volvamos a nuestra rama de características y cambiemos a ella. Aquí en el archivo ab dot B, imaginemos que quiero eliminar una función, y lo hago. Después de eliminar la segunda declaración de impresión, agregaré estos cambios y los comprometeré. Entonces volveré a cambiar a la rama principal y fusionaré estos cambios. El comando Git log mostrará nuestro último commit donde fusionamos la característica dos en la rama principal. Y ahora tiempo para otro comando, quiero presentarles. Cada vez que realizas operaciones como mover, crear o eliminar confirmaciones o ramas, Git almacena las secciones en el registro de Rf. Y esto permite restaurar el repositorio a puntos anteriores y también recuperar confirmaciones eliminadas que fueron sobrescritas y realizar fusiones incorrectas Bueno, es realmente un comando muy útil. El flog realiza un seguimiento de la última posición de referencia I durante un cierto periodo, pero quiero notar que el vlog se almacena localmente y no se comparte con repositorios remotos Ahora, imagina que lamento fusionar esta rama, y urgentemente necesito deshacerla idealmente sin dejar rastro en el historial de cometer Actualmente, estoy en el commit fusionado de la característica dos, pero necesito revertir una commit. Para verificar qué cambió, ejecutaré get DF y luego cometeré hash. Esto muestra la diferencia entre el estado actual y el commit especificado. Como puede ver, el commit actual difiere de la que especificé específicamente porque falta la segunda declaración de impresión. Esto significa que el commit anterior contiene el estado que necesitamos porque quiero restaurar esta línea y nadie debería ver que fue eliminada. Giro dash dahart restablece completamente su directorio de trabajo y compromete el historial al punto especificado Cuando ejecutas, GitRst dash dashart, get mueve tu rama a la confirmacion especificada, elimina todo en los cambios comprometidos y borra las confirmaciones que vinieron después de la confirmacion Pero ten cuidado. Esta operación es irreversible. No se puede recuperar los cambios de señora a menos que estén apareciendo ahí un azote Después de ejecutar el comando, nuestra segunda declaración impresa está de vuelta. Lo hicimos borrado. Nuestro comité de fusión se ha ido. Y si ejecutamos Gift Log, podemos ver que la rama principal ha vuelto al commit de conflicto fijo tal como lo era antes de la fusión. Como mencioné anteriormente, el comando Git raf log muestra todo lo que hemos hecho. Cuando ejecuto Git flock, vemos que la abración de reinicio moviendo la rama de nuevo a commit 44 F 18, el inicio del commit volvemos al commit merge que acabamos de levantar, es decir, esta acción no está exenta de consecuencias, pesar de que git reset dash dash hard borra todos los Siguen existiendo en el relock por un tiempo limitado. Ya que hemos aprendido a retroceder a las confirmaciones anteriores sin guardar esta acción en el historial de confirmaciones, usando el comando Gitvlog Aprendamos también a deshacer este rollback sin crear caos en la historia del commit Es decir, retrocedemos a un commit previo, quitando de la historia todo lo que vino después de él. Ahora queremos deshacer esta reversión. Así que deberíamos volver al vlog, copiar el hash del commit merge, y ejecutar el comando git reset, dash dash hard y hash Y ahora, mira esto. Nuestro gráfico de compromiso es exactamente como era antes. Todos los nombres de Commit y sus hashes permanecen sin cambios. En este momento usamos el comando con la opción hard. Ahora hablemos de otro comando. Git reset dash dash soft. A diferencia de GitrSet dash dash hard, la opción soft deshace los últimos Camuts pero mantiene todos los cambios en su directorio de trabajo Ahora mismo, nuestra sucursal está en el mismo estado antes de que nos enteráramos del comando GDR set dash dash hard command Repitamos todas las acciones que hicimos con la opción dura. Pero esta vez, usando la opción soft. Así que vamos a rehacer R y D de la característica para fusionar. Pero esta vez usamos GITR set, DDR soft, y otra vez, tiene nuestro Esto mueve nuestra sucursal de nuevo al Camt anterior antes de la fusión Y ahora echa un vistazo al comando soft de GitrSet das Dar deshizo la fusión de característica la eliminación de la segunda declaración impresa También se deshizo la eliminación de la segunda declaración impresa, pero a diferencia de Hart, los cambios siguen ahí Actualmente, estos cambios de etapa pueden ser comprometidos, modificados o descartados. Este comando es útil cuando cometiste algo por error y quieres modificarlo o te olvidaste de agregar un cambio y necesitas actualizar el último commit. O si quieres arreglar el mensaje de commit, a diferencia de hard git reset, D soft hace y elimina cambios, mantiene los cambios en el área y te permite volver a cometer fácilmente. Guitri dijo que soft es más seguro porque solo mueve el puntero de rama sin afectar tus cambios, lo que te permite modificarlos y volver a comprometerlos según Pero la opción difícil no debe usarse con precaución porque descarta permanentemente los cambios tanto en el directorio de trabajo como en el área de preparación, dificultando o incluso imposible recuperar esos cambios una vez que se han ido Bueno, por ahora, eso es todo. Nos vemos en la siguiente lección. 12. 11 Enmiende el encoger de las ramas: Hola chicos, y seguimos trabajando con Git. Vayamos al grano enseguida. Imagina que hicimos un terrible compromiso. Por ejemplo, así. Actualmente, estoy en la rama del pescador, y veo el último commit con algún mensaje sin sentido No sólo eso, si entramos, veremos que Read me file tiene cambios que también son por decirlo suavemente. No genial. El comando Git commit amend se utiliza para realizar cambios en el último commit. Específicamente, se utiliza para agregar nuevos cambios o cambiar el mensaje de compromiso. Lo primero que haremos es arreglar esos cambios sin sentido que vimos en el archivo readme Escribiré algo más o menos plausible. Luego agregaremos estos cambios al área de preparación y ejecutaremos el comando Git commit amend. Al ejecutar la modificación GID Commit, se crea un nuevo comité, que captura el estado actual de los archivos. Si después de comprometerse, te das cuenta que olvidaste agregar algunos cambios importantes, cometiste un error en el mensaje de commit o decidiste cambiar todo por completo. El comando Modificación de Git Commit permite realizar cambios adicionales en el último commit sin crear uno nuevo. En otras palabras, reescribe tu compromiso. Te permite hacer cambios rápidamente y corregir errores si te equivocaste localmente y quieres cambiar el commit anterior sin abarrotar el abarrotar Así que también arreglemos nuestro mensaje de compromiso sin sentido. Esto es lo que vemos después de enmendar. Mostrará el último commit con detalles. Podemos notar que se cambió el mensaje y se modificó la línea en el archivo léeme. Nuestro commit cambió completamente el mensaje y modificó los cambios que estaban dentro sin abarrotar el historial de commits con commits innecesarios Lo que hicimos esencialmente, fue que Git retrocedió un commit, e hicimos cambios y reescribimos este Cammit Por favor, preste atención. No lo modificamos. Ahora reescribimos vamos a trabajar con sucursales. El comando de rama GID muestra todas las sucursales que tenemos. ¿Cómo podemos eliminar sucursales innecesarias localmente? Actualmente, contamos con sucursales principales y dos de nueva creación. Si has completado tu tarea en una sucursal y ya no la necesitas, ya has fusionado los cambios en la rama principal, y puedes eliminarla localmente para que no te moleste. El comando rama GID menos D en minúsculas, y el nombre de la rama eliminarán esta rama localmente Si existe en el servidor remoto, permanecerá ahí, pero localmente, ya no tendrás esta sucursal. Ahora voy a cambiar a la característica una rama, que sigue ahí, y voy a hacer más commits para mostrarte otra cosa. Añadiré nueva línea al archivo Rhythmtixty y los comprometeré por separado, para que puedan ver las para que puedan ver Al trabajar con Git, puede haber una situación tengas varias commits consecutivas que quieras combinar en una sola mientras preservas los cambios de estas commits. Esto puede ser útil para mejorar el historial de commit, reducir su cantidad o preparar un historial limpio y comprensible al cometer cambios en el repositorio principal. Entonces hicimos cambios, agregamos si alineas a nuestro archivo RID M. Ahora cambiamos a la rama principal para fusionar todos estos cambios. El comando git merge squash te permite combinar commits en uno solo. Estos cambian el historial de commits fusionando los cambios de múltiples commits en uno que cometes Aquí podemos ver claramente que al estar en la rama principal, tenemos un commit que consta de tres commits de nuestra característica una rama. A veces, después de haber completado tu tarea, hiciste muchas amidas en tu sucursal, probaste varias variantes, experimentaste y realmente no quieres que todas estas sean visibles en la historia general Es decir, tu objetivo es tomar todos estos cambios en un commit y fusionarlos en la rama principal en el proyecto. Después de ejecutar el comando Git merge squash, todos los cambios de la característica una rama se combinan en una sola commit como si se hicieran directamente en la rama actual. La característica de una rama en sí permanece sin cambios, lo que le permite eliminarla o mantenerla sin afectar el historial mental. Después de completar la tarea y fusionar los cambios con la rama principal, puede eliminar la rama de entidad ya que ya no es necesaria Y ahora quiero mostrarles cómo forzar la eliminación de la rama, aunque aún no se haya empujado o fusionado porque sabemos que no podemos eliminar una rama en ella si tiene cambios no comprometidos o no fusionados Para ello, haré un commit y no lo fusionaré con la rama principal. Como pueden ver, hice un cambio en el archivo, lo agregué al área de preparación y lo comprometí. Entonces me cambiaré a la rama principal. Si necesitas eliminar una rama y los cambios no se han fusionado porque de repente se volvieron innecesarios, el comando habitual de eliminación de rama con menos D en minúscula no funcionará. No te permitirá eliminar la rama, sino mediante el uso de la opción menos la mayúscula Obliga a Git a eliminar la rama independientemente de su estado de fusión. Es importante tener cuidado con este comando ya que elimina irreversiblemente la rama y Antes de la eliminación, asegúrese de no perder ningún cambio importante. En la siguiente lección, profundizaremos en trabajar con registros usando el comando Git log. Mar. 13. Trabajar con registros de Git: personalizar la salida del registro y utilizar alias: Ahora pasemos a los registros. A menudo, es necesario ver el último comite o el último par de commits para evitar mostrar todo el registro Puede ejecutar el comando Git log y especificar cualquier número con signo menos. Esto nos mostrará los últimos comits en la historia del repositorio Usé menos dos y me mostraron los dos últimos registros. El comando Git log d stat se utiliza para ver estadísticas detalladas de los cambios de las dos últimas emitidas Cuando ejecuta Git log stat, muestra los archivos modificados junto con las estadísticas de corrección. El parámetro Git log pretty one line se utiliza para mostrar cada commit en el historial del repositorio en un formato compacto donde cada commit se muestra en una línea separada. El parámetro pretty one line instruye a Git sobre cómo formatear la salida del historial de commit Con este parámetro, vemos una vista conveniente con el Commit has y el mensaje en una línea. El parámetro Git Log pretty format se utiliza para mostrar el historial de Commit con la capacidad de personalizar el formato de salida. Este comando permite especificar un formato de salida personalizado utilizando marcadores de posición especiales Puedes usar estos marcadores de posición para mostrar varios atributos de Commit, como Commit, has, author, commit message, date y más Por ejemplo, muestro solo el nombre del autor. En esta variante, muestro el hash abreviado y el nombre aors para cada commit Hagamos que la salida sea más conveniente. Aquí muestro el hash abreviado, nombre de aors, la fecha en que se realizó el commit y el mensaje para cada Bueno, puedes mejorarlo aún más agregando una gráfica. Es decir, hacemos casi lo mismo, pero con la adición de la bandera gráfica, y vemos una salida de registro hermosa y conveniente. El registro de Git, ya que el comando se utiliza para mostrar el historial de commit, comenzando desde un punto específico en el tiempo. Ahora veamos el registro. Por ejemplo, durante los últimos tres días. El parámetro Since le permite especificar un día o un período de tiempo a partir del cual desea ver el historial de commit. Este parámetro acepta varios formatos de fecha. Puede especificar una fecha absoluta como el 1 de enero 2023 o un rango de tiempo relativo como dos días o un mes. Y en las últimas 4 horas, solo hicimos dos emite O digamos, por ejemplo, la última semana, o para el último día y 3 horas, también podemos mezclarlo. Escribiré un comando que hará una selección en una línea donde podamos ver el hash, el mensaje de commit abreviado, y donde el autor es Denis, asegurando que estos son commits frescos de los últimos dos días Y claro, si estás trabajando con Git en una interfaz gráfica, puede que no necesites esto, pero aún así es bueno saberlo. Hablemos ahora de los alias de Git, cómo crearlos y eliminarlos. El comando Git config Global menos L se utiliza para ver la configuración de Git globalmente. El parámetro global indica que estamos trabajando con configuraciones globales de Git que se aplican a todos los repositorios de tu sistema Este comando listará todas las configuraciones de git que se han establecido en su sistema. Ahora pasemos a los alias de Git. Un Aas es un mecanismo que permite crear atajos o comandos personalizados que utilizan una secuencia de otros comandos de Git Con alias, puede crear sus propios comandos en lugar de ingresar manualmente comandos largos de complejos Aquí podemos ver que anteriormente he creado varios alias Y tomemos el primero. En lugar de escribir el comando completo git status, puedo escribir ST. Esto es un atajo. O aquí hay otro alias donde simplemente puedo escribir GID IF y obtener toda la información que obtendría si ingresara este comando completamente en la línea de comandos. Practicemos la creación de estos alias. Por ejemplo, tomaré un comando que muestre ramas, rama Git, y tomaré un alias para ello, reemplazándolo con la abreviatura BR. Ahora voy a usar mi alias anterior IF y vemos nuevo alias BR y funciona. Si utilizo esta abreviatura, veremos nuestras sucursales exactamente como si entráramos al comando completo. Ahora, intentemos eliminar estos alias. El comando unset elimina lo que ya hemos creado. Puedo borrar nuestro alias que muestra todas las sucursales. Ahora no existe ese alias, y el comando no funciona. Si queremos ver todas las sucursales, necesitamos ingresar el comando completamente de nuevo. Además de crear tu ***, hay una extensión para el shell SH. Para quienes trabajan con Mac y tienen SH en sus computadoras, puede aprovechar la funcionalidad adicional, que le permite usar alias o comandos cortos para ejecución más cómoda y rápida las operaciones de uso frecuente y Git Tener una lista de atajos listos para hace que sea más fácil y rápido usar Git. En la documentación de Git, puedes ver la lista de alias disponibles Por ejemplo, el comando simple GB mostrará todas las ramas de Git. Esta abreviatura significa rama. La abreviatura GCF nos mostrará la configuración de Git, y el comando GST mostrará el estado del directorio de trabajo Entonces, por ahora, eso es todo. Nos vemos en la siguiente lección. Mar. 14. Entendiendo Git Rebase: qué es y por qué deberías usarlo: Bienvenidos de nuevo, chicos. Y ahora voy a hablar de lo que es rebase en git Rebase es el proceso de mover o fusionar una secuencia de kamits en un nuevo La razón principal para usar rebase es preservar una historia lineal de un proyecto Por ejemplo, imagina una situación en la que la rama principal haya progresado desde que empezaste a trabajar en una rama característica Ahora, desea incorporar las últimas actualizaciones de la rama principal a su rama de características mientras mantiene su historial limpio, haciendo que parezca que está trabajando en función de los últimos cambios de la rama principal. Esto hace que sea más fácil fusionar su rama de entidades de nuevo en la rama principal más adelante. Rebase es especialmente útil y fácil entender en el flujo de trabajo que involucra futuras sucursales Así que comencemos. Si miras una estructura gráfica típica de Git, verás el historial de ramas fusionadas y en desarrollo formando una gráfica. Con el tiempo, esta gráfica puede enredarse bastante, dificultando la atracción de cambios específicos El comando git rebase ayuda a mantener un historial más limpio y organizado Demostraré rebase en un proyecto donde hemos estado trabajando con fusiones simples Ahora mismo, nuestra historia contiene muchas ramas fusionadas, haciéndola algo desordenada Mientras se trabaja en un proyecto, generalmente hay un repositorio remoto donde el código se actualiza constantemente para garantizar que su versión local del proyecto se mantenga actualizada. Con la versión remota, debe extraer los últimos cambios antes de realizar una rebase El primer paso es obtener los últimos cambios del repositorio remoto y actualizar su sucursal principal local Como mi proyecto de prueba no está conectado al repositorio remoto, no tengo ningún cambio nuevo que extraer. Sin embargo, en tu caso, este paso asegura que tu sucursal principal local sea idéntica a la del repositorio remoto. A continuación, cambio a mi rama de funciones, que ya contiene commits. Presta atención a los hashes Commit. Esto es importante para entender lo que sucede durante la rebase En este punto, la rama principal local contiene nuevos cambios que faltan en la rama de entidades. Mientras trabajaban en equipo, otros colegas han fusionado sus ramas de características en la rama principal, y usted ha extraído esos cambios del servidor remoto a su sucursal principal local. Tu tarea ahora es fusionar tu rama de entidad usando rebase El comando Git re base esencialmente hace que parezca que hubieras comenzado a trabajar en tu rama de características desde la última rama de Camt en mente Visualmente, aparece como si la rama de la característica se moviera encima de la última Camt No obstante, en realidad, Git reescribe los ácaros, razón por la que te pedí que conocieras los hashes Commit Cuando comienza la rebase, mueve la cabeza a la última commit de la rama principal y comienza a reproducir las commits desde la rama de características una por una hasta esta última En nuestro caso, se produce un conflicto matrimonial, lo cual es totalmente normal. En este punto, tienes tres opciones. Resuelva el conflicto manualmente y continúe la rebase usando el comando G base dash dash continua, omita el conflicto mit y pase al siguiente usando el salto base O abortar la rebase y volver al estado anterior usando el comando git rebase, dash, dash, Resolveré el conflicto y continuaré rebasando. Después de arreglar el problema, GIT abre un editor de texto, lo que nos permite modificar el mensaje de commit, pero simplemente lo guardaremos tal como está. Una vez que se completa la rebase, la cabeza vuelve a nuestra rama de características Cambia junto con las acciones de Git, primero desde el último commit de la rama principal hasta el primer commit de rebase de la rama feature Después al siguiente commit rebasado, y finalmente al último commit rebasado A pesar de que todos los commits permanecen sin cambios en términos de contenido, sus hashes comite han sido Los commits originales aún existen en el repositorio, pero ya no son visibles. Con el tiempo, serán retirados por recolección de basura. Después de rebasar, cambiamos a la rama principal y ejecutamos el comando, git rebase Git analizará el brranch principal, identificará cualquier cambio faltante y aplicará estas tres commits desde la rama de características a la última commit y a la rama principal En este punto, podemos empujar nuestra rama principal actualizada de nuevo al repositorio remoto. Pero como mi versión de mi proyecto no está conectada al repositorio remoto, saltaré este paso al hacer commits durante la rebase, a menudo abre win por defecto, lo que puede no ser conveniente para todos Si prefieres un editor diferente, puedes configurarlo usando el comando. Git config global core editor, y en mi caso, nano. O si prefieres usar el código VS como editor predeterminado, puedes usar este comando. Si no usas el flanco de peso, el editor podría abrirse como una página en blanco en lugar de permitirte editar el mensaje de compromiso O puedes reemplazarlo por cualquier otro editor que prefieras. Ya que me siento cómodo con nano, me quedaré con él. Chicos, aprendimos a usar git rebase para mantener un historial de commit lineal limpio Vimos cómo resolver conflictos, manejar operaciones de rebase y cambiar el editor predeterminado de Git Enhorabuena por completar el curso. Hiciste un gran progreso, y ahora tienes un sólido entendimiento de GID. El siguiente paso es seguir practicando. Cuanto más uses Git, más confianza te volverás. No se limite a confiar en la teoría. Aplica lo que has aprendido en proyectos reales. Explora diferentes funciones de git e intenta utilizarlas en proyectos personales para profundizar tu comprensión Recuerda que Git es una herramienta esencial para los desarrolladores, y cuanto más practiques, mejor estarás usándolo de manera eficiente en varios flujos de trabajo. Buena suerte y seguir codificando.