GIT – Sotfware de control de versiones
Git es un sistema de control de versiones de código abierto que permite manejar las modificaciones de cualquier tipo de proyecto con rapidez y eficiencia.
Un control de versiones es un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante.
A medida que un proyecto va creciendo, se van modificando o cambiando archivos. Una manera eficiente para gestionar estos cambios es utilizar un sistema de control de versiones. Existen varios sistemas de este tipo en el mercado pero, el más popular hoy en día es Git.
Actualmente, es indispensable usarlo, sobretodo en proyectos complejos, ya que necesitamos herramientas para controlar los cambios y poder ir atrás rápida y fácilmente si fuera necesario.
Si eres diseñador gráfico o web y quieres mantener cada versión de una imagen o diseño (es algo que sin duda vas a querer), usar un sistema de control de versiones (VCS por sus siglas en inglés) es una decisión muy acertada.
Si eres programador y has metido la pata en la última modificación en la que has tocado cientos de archivos, la solución que permite un sistema de control de versiones para volver atrás te puede salvar la vida.
Un sistema de control de versiones te permite regresar a versiones anteriores de tus archivos, regresar a una versión anterior del proyecto completo, comparar cambios a lo largo del tiempo, ver quién modificó por última vez algo que pueda estar causando problemas, ver quién introdujo un problema y cuándo, y mucho más.
Usar un VCS también significa generalmente que si arruinas o pierdes archivos, será posible recuperarlos fácilmente.
Un método de control de versiones usado por muchas personas es copiar los archivos a otro directorio (quizás indicando la fecha y hora en que lo hicieron, si son ingeniosos). Este método es muy común porque es muy sencillo, pero también es propenso a errores. Es fácil olvidar en qué directorio te encuentras, y guardar accidentalmente en el archivo equivocado o sobrescribir archivos que no querías. Los cambios no quedan documentados y es fácil olvidar cual fue la modificación después de un largo tiempo.
Por esto y mucho más, quiero hacerte saber que Git es un herramienta que te va a permitir todo esto y mucho más.
Fundamental, los 3 estados de Git
Ahora presta atención. Esto es lo más importante que debes recordar acerca de Git si quieres que el resto de tu proceso de aprendizaje prosiga sin problemas.
Git tiene tres estados principales en los que se pueden encontrar tus archivos:
- confirmado (committed)
- modificado (modified)
- preparado (staged)
Confirmado significa que los datos están almacenados de manera segura en tu base de datos local.
Modificado significa que has modificado el archivo pero todavía no lo has confirmado a tu base de datos.
Y preparado significa que has marcado un archivo modificado en su versión actual para que vaya en tu próxima confirmación.
Esto nos lleva a las tres secciones principales de un proyecto de Git: El directorio de Git (Git directory), el directorio de trabajo (working directory), y el área de preparación (staging area).
El directorio de Git es donde se almacenan los metadatos y la base de datos de objetos para tu proyecto. Es la parte más importante de Git, y es lo que se copia cuando clonas un repositorio desde otra computadora.
El directorio de trabajo es una copia de una versión del proyecto. Estos archivos se sacan de la base de datos comprimida en el directorio de Git, y se colocan en disco para que los puedas usar o modificar.
El área de preparación es un archivo, generalmente contenido en tu directorio de Git, que almacena información acerca de lo que va a ir en tu próxima confirmación. A veces se le denomina índice (“index”), pero se está convirtiendo en estándar el referirse a ella como el área de preparación.
De este bloque te debe quedar claro que Git tiene 3 estados que los archivos pueden tener:
- Commited
- Modified
- Staged
La línea de comandos
Existen varias formas de usar Git.
Por un lado, tenemos las herramientas originales de línea de comandos, y por otro lado tenemos una gran variedad de interfaces de usuario con distintas capacidades.
Si tienes conocimientos, lo ideal es utilizar Git desde la línea de comandos. La línea de comandos es el único lugar donde puedes ejecutar todos los comandos de Git.
La mayoría de interfaces gráficas de usuario solo implementan una parte de las características de Git por motivos de simplicidad. Si tú sabes cómo realizar algo desde la línea de comandos, seguramente serás capaz de averiguar cómo hacer lo mismo desde una interfaz gráfica. Sin embargo, la relación opuesta no es necesariamente cierta. Así mismo, la decisión de qué cliente gráfico utilizar depende totalmente de tu gusto, pero todos los usuarios tendrán las herramientas de línea de comandos instaladas y disponibles.
Instalación de Git
Antes de empezar a utilizar Git, tienes que instalarlo en tu ordenador.
La instalación es muy sencilla en Windows. Tan solo tienes que descargar el archivo ejecutable desde el siguiente enlace: https://git-scm.com/download/win
Una vez esté completamente descargado, haz doble clic para instalarlo. Sigue los pasos de instalación para configurarlo según tu necesidad.
Configuración de GIT
Lo primero que debes hacer cuando instalas Git es establecer tu nombre de usuario y dirección de correo electrónico como mínimo. Esto es importante porque los «commits» de Git usan esta información, y es introducida de manera inmutable en los commits que envías.
Observa a continuación un ejemplo para crear un nombre de usuario y email:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
Como crear un repositorio
Desde la línea de comandos sitúate en el directorio de tu proyecto.
En Windows puedes ir directamente al directorio de carpetas, situarte en la carpeta principal del proyecto para hacer clic con el botón secundario del ratón.
En el menú desplegable que aparece puedes pulsar en “Git Bash Here”.
De esta forma, entras en la línea de comandos de Git ya situado directamente en el directorio del proyecto.
Una vez ahí, ejecuta lo siguiente:
$ git init
Esto crea un subdirectorio nuevo llamado .git, el cual contiene todos los archivos necesarios del repositorio. Sería como un esqueleto de un repositorio de Git.
Estoy mandando la instrucción para indicar a Git que quiero empezar a controlar este proyecto.
Todavía no hay nada en tu proyecto que esté bajo seguimiento. Si deseas empezar a controlar versiones de archivos existentes (a diferencia de un directorio vacío), probablemente debes comenzar el seguimiento de esos archivos y hacer una confirmación inicial. Puedes conseguirlo con unos pocos comandos git add para especificar qué archivos quieres controlar, seguidos de un git commit para confirmar los cambios.
Comandos básicos
Para pasar los archivos de Working directory a Staging area, lo puedes hacer así:
git add .
Para ver el estado en el que están tus archivos puedes hacer lo siguiente:
git status
Para pasar del staging area al repository (snapshop) puedes hacer lo siguiente:
git commit –m”mensaje”
El texto «mensaje» que aparece entre comillas lo puedes cambiar para indicar detalles de la modificación y así saber a que se corresponde.
Para ver el historial de confirmaciones (commits), puedes hacer:
git log
Para ver o crear ramas:
git branch
Y para cambiar entre ramas:
git checkout master
Trabajar con remotos
Hasta ahora solo hemos visto como trabajar de forma independiente pero, Git permite trabajar remotamente con otros usuarios.
Para poder colaborar en cualquier proyecto Git, necesitas saber cómo gestionar repositorios remotos.
Los repositorios remotos son versiones de tu proyecto que están hospedadas en Internet en cualquier otra red. Puedes tener varios de ellos, y en cada uno tendrás generalmente permisos de solo lectura o de lectura y escritura.
Colaborar con otras personas implica gestionar estos repositorios remotos y enviar y traer datos de ellos cada vez que necesites compartir tu trabajo. Gestionar repositorios remotos incluye saber cómo añadir un repositorio remoto, eliminar los remotos que ya no son válidos, gestionar varias ramas remotas y definir si deben rastrearse o no, y más.
Conclusión
GIT es un complemento perfecto para poder trabajar en equipo y no machacarse entre los integrantes del equipo de desarrollo.
Controlar los cambios que se han realizado en el código y mantener un registro es un avance importante. Además, tener la posibilidad de volver atrás fácilmente no tiene precio.
El funcionamiento habitual utilizando Git es que cada integrante del grupo pueda hacer su trabajo e ir subiendo a Git para mezclar el código de manera perfecta e inteligente ahorrando mucho tiempo.
Para trabajar en una empresa es fundamental. Debes aprenderlo si o si ya que utilizando un sistema de control de versiones da pie a que eres más profesional y significa que estás preparado para trabajar en equipo.
No tengas miedo a la linea de comandos ni a la extensa documentación que ofrecen este tipo de sistemas. Git es fácil de aprender. En tu primer día de aprendizaje verás que estarás haciendo tus primeros commits.
Utilizando un sistema de control de versiones, el control y orden absoluto del proyecto está garantizado siempre y cuando lo sepas utilizarlo bien.
¿Conoces algún sistema de control de versiones mejor que Git?
¿Has probado Git?
Envía un comentario o da tu opinión.
¿Necesitas saber más?
Me parece la mejor iniciación a Git que he leído.
Muchas gracias.