Diferencias entre Git y GitHub

¿Qué es Git y para qué se utiliza? ¿Cuál es la diferencia entre Git y GitHub o GitLab? Soy Nathan Hekman de IBM Cloud y hoy te voy a responder esas preguntas, pero antes de comenzar, por favor, haz clic en el botón «Suscribirse». Ahora vamos a empezar con un ejemplo. Supongamos que trabajas para una empresa de streaming de música y te han asignado la tarea de construir una aplicación de reproductor de música. Quieres poder reproducir música de todo tipo de géneros en un dispositivo y te han encargado desarrollar esta aplicación con un equipo de programadores, ¿verdad? ¿Cómo trabajas con ese equipo de programadores y escribes código al mismo tiempo que ellos en el mismo proyecto o base de código sin conflictos? Bueno, ahí es donde entra en juego Git y GitHub o GitLab. Entonces, ¿qué es Git? Git es lo que se conoce como un sistema de control de versiones. Quizás eso no signifique mucho para ti en este momento, pero vamos a adentrarnos en lo que significa exactamente. ¿Y GitHub? ¿O GitLab? Bueno, GitHub o GitLab son en realidad plataformas donde se aloja Git. Git es el sistema subyacente que se ejecuta en tu máquina local, mientras que GitHub o GitLab se alojan en la nube o en la web para alojar ese sistema Git y agregar algunas características útiles adicionales. Puedes conocer GitHub o GitLab como una comunidad muy diversa de código abierto, donde los programadores de todo el mundo pueden trabajar juntos y colaborar en diferentes proyectos o códigos. Entonces, hablemos de algunos de los beneficios y aspectos de Git y GitHub y cómo trabajan juntos. En primer lugar, te permite realizar un seguimiento de tus cambios. Siempre tienes un registro de exactamente qué cambios se hicieron en cualquier momento. Esto va de la mano con la copia de seguridad histórica, donde se crean instantáneas para que puedas volver a versiones anteriores si es necesario, mientras sigues copiando y haciendo cambios en esas versiones anteriores. Entonces, si introduces un error o cambias algo de manera incorrecta, siempre puedes volver atrás con las copias de seguridad históricas proporcionadas por Git y revertir esos cambios. ¿Qué más? Tal vez uno de los mayores beneficios que ofrecen Git y GitHub sea el desarrollo basado en equipos. Como mencionamos anteriormente, permite que un equipo de programadores trabaje en el mismo código simultáneamente y luego fusionen sus cambios para avanzar en un proyecto. Muy interesante, ¿no? Además, es muy flexible, lo que significa que puedes trabajar localmente en un proyecto o utilizar Git o GitHub como parte de tus flujos de trabajo de DevOps. Esto te permite integrar tu repositorio, del cual hablaremos en un momento, y tu proyecto, y tenerlos como parte de las pruebas automatizadas, para iniciar pruebas automatizadas, o como parte de tu proceso de construcción y despliegue automatizados. Es un aspecto realmente genial y muy flexible. Y por último, Git se utiliza principalmente a través de la línea de comandos de tu máquina local, mientras que GitHub o GitLab se ejecutan en la web. Es un sitio web donde interactúas con GitHub o GitLab. Finalmente, un concepto importante que debes entender sobre Git y GitHub o GitLab es que se utiliza un desarrollo basado en tronco. ¿Qué significa eso? Piensa en un tronco como un árbol. Tienes este código principal, el código principal, y como desarrollador puedes branchear (ramificarte) de ese código principal, realizar algunos cambios y luego fusionar tu código de vuelta a esa rama principal. Y aquí, otro desarrollador puede branchearse desde la rama principal, realizar algunos cambios y luego fusionar nuevamente en esa rama principal. Esto es desarrollo basado en tronco. Ahora, sumerjámonos en nuestro ejemplo y veamos cómo se ve exactamente esto. Supongamos que tienes lo que se llama un repositorio. ¿Qué es un repositorio? Es un lugar donde guardar tu código y los cambios que realizas en el código, y en este caso estará alojado en la nube o en la web, en GitHub o GitLab. Al mismo tiempo, supongamos que yo (Nathan) estoy trabajando en este repositorio en mi máquina local. ¿Cómo lo hago? Bueno, necesito hacer lo que se conoce como «clonar» este repositorio en mi máquina local y crear una rama de código llamada «Nathan-branch». Ahí es donde haré mis cambios en la base de código. ¿Y qué cambios quiero hacer? Soy un gran fanático del Bluegrass, ¿de acuerdo? Así que quiero hacer que la página de inicio de la aplicación presente Bluegrass. Entonces, aquí abajo, digamos que tengo mi aplicación y la llamamos «copia de trabajo» (working copy). Aquí es donde realmente haré cambios en esa copia de trabajo para presentar música Bluegrass en la página de inicio de la aplicación. ¡Genial! Una vez que esté satisfecho con esos cambios, lo que voy a hacer es confirmarlos (commit) y luego hacer «push» de esos cambios a Nathan-branch. Y una vez que esté satisfecho con eso, con todo confirmado, procederé a hacer «push» de esos cambios de vuelta a nuestro repositorio alojado en la nube en GitHub. Perfecto, ¿contento con eso, verdad? Hagámoslo un poco más complicado. Resulta que mi compañero de trabajo, Greg, también quiere hacer algunos cambios en la pantalla de inicio de la aplicación, y ahora resulta que está haciendo estos cambios antes de que yo haya subido mis cambios de Bluegrass a la rama principal. Entonces, cuando clona el repositorio en su máquina local, quiere hacer algunos cambios porque tiene una preferencia de estilo musical un poco diferente. Es un gran fanático del Rock, ¿de acuerdo? Y así, aquí en su copia de trabajo (working copy), hará que la pantalla de inicio presente música Rock. Y cuando haga esos cambios y luego los confirme en lo que llamaremos «Greg-branch», estará satisfecho con esos cambios y querrá fusionarlos y hacer «push» de nuevo a la rama principal. Entonces, veamos, ¿qué tiene que hacer para hacer eso? Bueno, en realidad tendrá que hacer «pull» y fusionar (pull and merge) lo que haya en la rama principal, porque en este punto, mientras él ha estado trabajando, ya he subido mis cambios de Bluegrass. Entonces ahora él tiene que «pull» (traer) esos cambios a su rama de Greg y fusionarlos. ¡Oh oh! Adivina qué, aquí hay algo que se llama un «conflicto de fusión» (merge conflict). Sucede cuando está trayendo esos cambios y ha estado modificando el mismo código. Entonces hay un conflicto que necesita resolver. ¿Qué hace? Como cualquier buen compañero de trabajo, llega a un compromiso. Así que hace que la pantalla principal de la aplicación presente tanto Bluegrass como Rock. Realiza esos cambios en su rama y está listo para llevarlos nuevamente a la rama principal. El siguiente paso que debe tomar es enviar lo que se llama una «solicitud de fusión» (pull request). Es posible que hayas escuchado a la gente hablar de una «P.R.», ¿verdad? Eso es lo que es una solicitud de fusión. ¿Qué es exactamente? Es una forma de decir: «Hey, estos son los cambios que quiero hacer», y se puede ver en GitHub o GitLab para que cualquier persona en el equipo de desarrollo, como yo (Nathan), pueda ver esos cambios y decir: «Buen trabajo Greg, se ve genial». Y puedo aprobar la solicitud de fusión y luego fusionar esos cambios en la rama principal. Así que verás la versión final de la aplicación, que se ve increíble, con Bluegrass y Rock en la página principal. ¡Impresionante! Así que espero que esto aclare qué es exactamente Git, cómo está relacionado con GitHub y GitLab, y cómo son fundamentales para desarrollar aplicaciones no solo por ti mismo, sino también como parte de un equipo de programadores. Gracias. Si tienes preguntas, déjanos un comentario a continuación. Si quieres ver más contenido como este en el futuro, por favor, dale me gusta y suscríbete. Y no te olvides de que puedes mejorar tus habilidades y obtener un badge con IBM CloudLabs, que son laboratorios interactivos basados en navegador sobre Kubernetes, ¡y son gratis!

Artículos relacionados  El futuro de la navegación: El poder de la IA y la automatización en el Mayflower Ship

Resumen del artículo

Acerca deBeneficios
GitSistema de control de versiones, realiza un seguimiento de los cambios, permite copias de seguridad históricas, facilita el desarrollo en equipo y es flexible.
GitHub y GitLabPlataformas que alojan Git, permiten la colaboración en proyectos y proporcionan características adicionales.

Preguntas frecuentes

1. ¿Git es lo mismo que GitHub o GitLab?

No, Git es un sistema de control de versiones, mientras que GitHub y GitLab son plataformas que alojan Git.

2. ¿Qué beneficios ofrece Git y GitHub?

Git permite realizar un seguimiento de los cambios, realizar copias de seguridad históricas, facilitar el desarrollo en equipo y ser flexible. GitHub y GitLab permiten la colaboración en proyectos y ofrecen características adicionales.

3. ¿Cómo puedo trabajar en equipo con Git y GitHub?

Puedes trabajar en la misma base de código al mismo tiempo utilizando ramificaciones (branching) y fusionando los cambios en la rama principal.

4. ¿Cómo se resuelven los conflictos de fusión?

Los conflictos de fusión se resuelven mediante la revisión y edición manual del código para combinar los cambios de manera adecuada.

5. ¿Cómo puedo contribuir a proyectos en GitHub o GitLab?

Puedes enviar una solicitud de fusión (pull request) con los cambios que desees realizar y esperar la revisión y aprobación del equipo de desarrollo.

Espero que este artículo te haya sido útil. Si quieres obtener más información sobre Git, te invito a consultar los artículos relacionados en nuestra página web.

Hasta la próxima. ¡No te olvides de seguir aprendiendo y explorando el apasionante mundo de la ciberseguridad!

¿Te ha resultado útil??

0 / 0

Deja una respuesta 0

Your email address will not be published. Required fields are marked *