Plataforma

Tutorial GIT – Conceptos básicos

Tutorial GIT – Conceptos básicos

¿GIT? Algunos os preguntaréis… ¿Qué es eso? ¿Un grupo de música? ¿Un nuevo planeta? Puede sonar a eso si, pero no… Cuando hablamos de GIT, hablamos de un software de control de versiones. Es posible que hasta aquí sigáis igual… así que voy a explicar un poco a mas a fondo que eso de un software de control de versiones, cómo funciona y qué puedes hacer con GIT exactamente.

¿Qué es un software de control de versiones?

Un sistema de control de versiones, a partir de ahora SCV, es un sistema que te ayuda a tener el control y a gestionar los cambios generados en todos los elementos de nuestro producto o software, en este caso, todos nuestros archivos. Y es posible que penséis que eso podéis hacerlo vosotros mismos… guardando una copia de vuestro proyecto cada cierto tiempo y nombrándolo y versionándolo correctamente. Si, podéis hacerlo, pero un SCV te provee de herramientas y mecanismos mucho mas fiables, potentes y funcionales que una simple copia de seguridad.

Aunque este artículo se enfoque en GIT, existen varios SCV, siendo GIT el mas extendido y usado actualmente. Tan solo tienes que ver su curva de búsqueda en Google Trends para hacerte una idea de su evolución. Hablando de forma genérica los SCV nos aportan y deben de aportarnos lo siguiente:

  • Versionado de todos los cambios realizado sobre nuestros archivos
  • Registro de quién y cuando realizó los cambios sobre el proyecto
  • Recuperación de versiones anteriores
  • Almacenamiento de todos los archivos del proyecto
  • Comparativa entre diferentes versiones del mismo archivo
  • Facilita el trabajo colaborativo

Para el almacenamiento y control se utilizan los repositorios. Cada repositorio contendrá un proyecto independiente, y será el mismo repositorio el que almacene los cambios e histórico de registros.

¿Qué es GIT?

Sabiendo ya lo que es un software de control de versiones, de GIT podemos decir que es software libre, fue creado en el año 2005 por la comunidad Linux, en particular por Linus Torvalds. Desde entonces, su evolución ha sido constante, ha mejorado con cada versión y actualmente es un sistema fiable, robusto, rápido y potente incluso con proyectos de gran tamaño.

Entre las características más relevantes se encuentran (información extraída de Wikipedia):

  • Fuerte apoyo al desarrollo no lineal, por ende rapidez en la gestión de ramas y mezclado de diferentes versiones. Git incluye herramientas específicas para navegar y visualizar un historial de desarrollo no lineal. Una presunción fundamental en Git es que un cambio será fusionado mucho más frecuentemente de lo que se escribe originalmente, conforme se pasa entre varios programadores que lo revisan.
  • Gestión distribuida. Al igual que Darcs, BitKeeper, Mercurial, SVK, Bazaar y Monotone, Git le da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales. Los cambios se importan como ramas adicionales y pueden ser fusionados en la misma manera que se hace con la rama local.
  • Los almacenes de información pueden publicarse por HTTP, FTP, rsync o mediante un protocolo nativo, ya sea a través de una conexión TCP/IP simple o a través de cifrado SSH. Git también puede emular servidores CVS, lo que habilita el uso de clientes CVS pre-existentes y módulos IDE para CVS pre-existentes en el acceso de repositorios Git.
  • Los repositorios Subversion y svk se pueden usar directamente con git-svn.
  • Gestión eficiente de proyectos grandes, dada la rapidez de gestión de diferencias entre archivos, entre otras mejoras de optimización de velocidad de ejecución.
  • Todas las versiones previas a un cambio determinado, implican la notificación de un cambio posterior en cualquiera de ellas a ese cambio (denominado autenticación criptográfica de historial). Esto existía en Monotone.
  • Resulta algo más caro trabajar con ficheros concretos frente a proyectos, eso diferencia el trabajo frente a CVS, que trabaja con base en cambios de fichero, pero mejora el trabajo con afectaciones de código que concurren en operaciones similares en varios archivos.
  • Los renombrados se trabajan basándose en similitudes entre ficheros, aparte de nombres de ficheros, pero no se hacen marcas explícitas de cambios de nombre con base en supuestos nombres únicos de nodos de sistema de ficheros, lo que evita posibles, y posiblemente desastrosas, coincidencias de ficheros diferentes en un único nombre.
  • Realmacenamiento periódico en paquetes (ficheros). Esto es relativamente eficiente para escritura de cambios y relativamente ineficiente para lectura si el reempaquetado (con base en diferencias) no ocurre cada cierto tiempo.

Cómo funciona – Conceptos básicos

Lo primero, os dejo un enlace a la documentación de GIT. Suponiendo que trabajamos sobre Windows, lo primero será descargarnos la última versión e instalarla en nuestro equipo. Es un paso sencillo que no debe de dar complicaciones. Recordad que tendréis que añadir al PATH de vuestro equipo la carpeta donde hayamos instalado nuestro software.

Si no sabéis como, os dejo unas pequeñas instrucciones para hacerlo sobre Windows 10:

Ir a Panel de Control -> Sistema y seguridad -> Sistema -> Configuración avanzada del sistema… Y hacer click sobre “Variables de entorno…”. Una vez dentro, en variables de sistema, buscamos “Path”, y añadimos el directorio donde hayamos instalado nuestro GIT.

Una vez tenemos listo nuestro entorno, entonces podemos a empezar a conocer los comandos básicos.

git init

Este comando lo ejecutaremos dentro del directorio que queremos crear como repositorio. Lo que hará, será crear una carpeta llamada .git, con todo lo necesario para el correcto funcionamiento.

Ahora procedemos a añadir todos los archivos del proyecto a nuestro repositorio:


git add .

Una vez añadidos todos nuestros archivos, lo que haremos será hacer nuestro primer commit. Con esta acción llamada commit, lo que estamos haciendo es guardar todos los cambios realizados, con su correspondiente mensaje. Esto guardará, que cambios se han realizado, quién los ha realizado y el cuando.

git commit -m "My first commit"

Una vez guardados todos nuestros cambios, tendríamos que hacer push sobre nuestro repositorio. Pero antes, tendremos que definir cual es nuestro repositorio remoto. Tenemos varias opciones, como pueden ser Bitbucket o Github. Una vez creado nuestro repositorio, obtendremos una url que apunte a el, y una vez la tengamos ejecutamos la siguiente linea:

git remote add origin youruser@yourserver.com:/path/to/my_project.git

Y una vez definido…

 git push origin master 

De esta forma, ya tendremos nuestro código almacenado en nuestro servidor GIT, a salvo, y de manera que puedas compartirlo fácilmente con tus compañeros.

Lo aconsejable es trabajar sobre ramas paralelas a master, y que siempre sea la rama master la que está en producción. En un próximo post, hablaré sobre el concepto de ramas en git.

Como clonar un repositorio

En muchas ocasiones, nos ponen a nuestra disposición código de terceros para utilizar en nuestros proyectos, y cada vez mas en repositorios GIT. Por lo que, para poder descargar nuestra propia copia, basta con ejecutar el siguiente comando:

git clone https://github.com/libgit2/libgit2

Siendo “https://github.com/libgit2/libgit2” el repositorio. Esto nos crearía una nueva carpeta llamada libgit2, pero podemos modificar la carpeta destino, simplemente añadiéndola al final de nuestra sentencia:

git clone https://github.com/libgit2/libgit2 nuestracarpeta

Y ya para terminar, si queremos clonar una rama concreta, deberemos de modificar nuestro comando de la siguiente manera:

git clone -b <rama> <repositorio>

Pudiendo ser:

git clone -b develop https://github.com/libgit2/libgit2

 

En un siguiente post, hablaré sobre el sistema de ramas y lo fácil que es tener varias versiones independientes de nuestro propio proyecto.

Autor: Francisco Redondo. Antes Desarrollador Full Stack en Yunbit.

Valora el artículo:

1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (7 valoraciones, media: 4,14 sobre 5)
Cargando...
Avatar photo Francisco Redondo Desarrollador Full-Stack Ver más artículos de Francisco Redondo
Comentarios en “Tutorial GIT – Conceptos básicos”
Demetrio says:

Excelente Tutorial, directo al grano.

Otros artículos de la categoría Actualidad