Git and GitHub: ¿Qué es y cómo funciona?

Git es una importante herramienta para hacer backup [commit] tu código, saber utilizarlo es tan importante como saber usar Word. En este articulo vamos a ver que es y como funciona Git y GitHub, veremos los aspecto generales y lo que necesitas saber para empezar a utilizarlo en tus proyectos.

Te sugiero que después de leer esta tira de artículos, te metas en un curso para profundizar tus conocimientos.

¿Qué es Git?

Git es sistema de control de versiones ¿Qué hace un sistemas de control de versiones? es un programa que analiza el código que hiciste y crea una captura [toma una foto] del código en ese momento y lo guarda. Cada vez que hacemos “commit ” Git analiza el código, busca los cambios que hiciste y crea una copia de seguridad.

logo de git
Logo de git

Git es una poderosa herramienta que tiene múltiples funcionalidades y a medida que avancemos en estos artículos, iremos descubriéndola.

¿por qué usarlo?

  • Usar Git en tus proyectos puede ayudarte y facilitarte mucho en el progreso de tus aplicaciones. Ya qué, vas a dejar puntos de restauración para cuando rompa tu aplicación, con Git vas a podes volver al punto anterior y al que quieras que haya guardado.
  • Podes crear “ramas” que son caminos alternos donde podrás programar sabiendo que tu aplicación principal no se va a ver afectada.
  • Clonar el proyecto de otros programadores y desarrollar sobre ese.

Git y GitHub siempre van de la mano pero no son lo mismo

¿Qué es GitHub?

GitHub es como una red social para programadores, que, en vez de subir fotos y vídeos de gatitos, podes subir tus proyectos y compartirlos con la comunidad o algún colega. También podrás trabajar de forma colaborativa con todas aquellas personas a las que le brindes permisos. Además de recibir comentarios, presentar tu cuenta como portafolio, entre otras cosas.

¿y en qué se diferencia de Git?

Git es el software de control de versiones que corre de forma local en la pc y vas a trabajar con el a través de una terminal o interfaz grafica.

Foto de Yancy Min en Unsplash

En cambio, GitHub es una página web donde tenés disponibles todas las funcionalidades que ofrece Git sumado a podes de compartir tus proyectos, recibir soluciones, seguir a otros programadores, involucrarte en los proyectos de los demás, etc.

Foto de Mohammad Rahmani en Unsplash

¿Cómo funciona Git?

Como dijimos anteriormente Git hace copias de seguridad [Commit] de tu código para que puedas volver a el cuando quieras. También, crea los caminos alternos [Ramas/Branch]para que puedas experimentar en tu proyecto sin comprometer el mismo.

áreas con las que trabaja Git.

Vamos a introducir términos que nos van a permitir entender este mundo.

  • Flujo: Es el camino que tenemos que hacer para lograr algo, ese camino esta hecho de pasos y para avanzar vamos a ir utilizando comandos de Git. Esto es importante porque vamos a estar yendo y viendo.

Áreas de trabajo

Vamos a describir cuales son las áreas de trabajo en Git

  • Working area: Cuando creamos una carpeta y la utilizamos para crear nuestro proyecto esa carpeta se convierte en nuestro Working area.
  • Staging area: Es la que se encarga de recopilar y supervisar el código que esta en “working area” para luego crear una backup [Commit] del mismo. También aquí se crean los caminos alternos [Ramas/Branch] que hablamos mas arriba, entre otras cosas.
  • Repository: En esta área directamente se van a guardar las copias de seguridad con sus respectivas modificaciones, fechas, comentario de lo que hicimos y su id. El id nos va a servir cuando queremos volver a ese punto.
  • Remote Repository: Esta área es igual a “Repository” [o debería serlo], la diferencia es que “Remote Repository” va a estar alojada en nuestra red social “GitHub” para que nuestro proyecto sean compartidos y trabajado con las personas que queremos.

Para ir saltando entre estas áreas debemos tipear líneas de comando que las iremos viendo y explicando. Para adelantarse en la parte superior de la imagen pueden ver en gris los comandos que vamos a utilizar.

Unificando conceptos

Con la explicación que les di espero que sea hayan dado una idea de los que es Git/GitHub, de ahora en mas vamos a ponerle nombres a esas pequeñas definiciones que nombrando para explicar este tema.

  • Commit: Va a ser el nombre con el que nos vamos a referir cuando queramos hacer esa copia de seguridad de nuestro código en ese momento. Cuando hagamos “Commit” creando un punto de seguridad para nuestro proyecto.
  • Branch/Ramas: son esos caminos alternos que podemos ir creando para que nuestro proyecto principal no se rompa cuando queramos programar. Es como una copia de todo nuestro código en otro lugar en el podamos trabajar sin afectar al “verdadero”. Son las líneas celeste en la imagen.
Ramas, branch y commit

Esta es una herramienta muy importante para un programador por eso saber que es y como funciona es fundamental. Vamos a dejar por hoy hasta acá y otro articulo iré explicando como utilizarlo. No es difícil de utilizar Git pero necesita su tiempo para que los asimiles, así que te sugiero leer este articulo varias veces y si tenes dudas podes comentarme o enviarme un mensaje para aclarar las dudas. Si ves que algo esta raro con respecto a este articulo te invito a que me lo hagas saber para corregirlo y mejorar este contenido. ¡Saludos!