¿Qué es Git?
¿Conoces Git? ¿Sabes lo que es un sistema de control de versiones? Si te gusta la programación, desarrollar tus propios proyectos, el desarrollo de software, etc. seguro que has leído algo sobre Git. Hoy te contamos todos los detalles acerca de esta herramienta.
Git es uno de los sistemas de control de versiones más utilizado en el mundo actualmente según Xataka. Seguro que has leído o escuchado algo sobre él si te gusta la programación o el desarrollo de software. Es muy útil para los proyectos de Data Science.
Fue desarrollado en 2005 por el ingeniero de software Linus Torvalds, quien también desarrolló el sistema operativo Linux.
En el post de hoy te vamos a contar todo sobre esta herramienta, pero primero vamos a ver qué es un sistema de control de versiones.
¿Qué es un sistema de control de versiones?
El control de versiones, también conocido como control de código fuente es un software que rastrea y registra los cambios que se realizan en un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedes recuperar una versión específica más adelante.
Esto sirve de mucha ayuda para los desarrolladores ya que si por ejemplo, borran un elemento, no lo pierden, pueden recuperar la versión anterior y seguir trabajando con ella.
¿Qué es Git?
Como hemos dicho al principio, Git es un sistema de control de versiones distribuido que controla y hace un seguimiento de las distintas versiones de un proyecto determinado.
¿Cómo funciona Git?
Al tratarse de un sistema de control de versiones distribuido los miembros del equipo tienen una copia local (clon) del proyecto en su dispositivo, de esta forma, tienen un repositorio de control de versiones completo. Los repositorios locales permiten trabajar sin conexión o de forma remota fácilmente. Solo hay que confirmar el trabajo localmente y después sincronizar la copia del repositorio con la copia del servidor. En el caso de los sistemas de control de versiones centralizados, hay que sincronizar el código con un servidor antes de crear nuevas versiones.
Cada vez que modificamos nuestro proyecto y lo guardamos, Git crea una confirmación. Una confirmación es una instantánea de todos los archivos en un momento concreto. Si un archivo no ha cambiado de una confirmación a la siguiente, Git usa el archivo anterior.
Las confirmaciones crean vínculos a otras confirmaciones, formando un gráfico del historial de desarrollo.
Conceptos básicos de Git
Ramas
Tal y como hemos comentado, Git permite que todas las personas que trabajen en un proyecto tengan en su ordenador una copia local. Por lo que cada persona guarda los cambios que haya hecho en su propio repositorio de código local. Esto puede dar como resultado varios cambios diferentes basados en una misma confirmación, entonces, Git aisla los cambios para poder combinarlos mas adelante. Las ramas son las encargadas de administrar esta separación. Una vez que se ha terminado de trabajar con una rama, se puede combinar de nuevo con la rama principal del equipo.
Archivos y confirmaciones
Los archivos en Git se pueden encontrar de tres maneras: modificados, por fases o confirmados. Cuando se modifica por primera vez un archivo, los cambios solo existen en el directorio de trabajo, aún no forman parte de una confirmación ni del historial de desarrollo. El desarrollador debe realizar una fase de los archivos modificados para incluirse en la confirmación. El área de ensayo agrupa todas las modificaciones que se incluirán en la siguiente confirmación. Una vez que el desarrollador está satisfecho con los archivos staged, se empaquetan como una confirmación con un mensaje que describe lo que ha cambiado. Esta confirmación se convierte en parte del historial de desarrollo.
El almacenamiento provisional permite a los desarrolladores elegir qué cambios de archivo guardar en una confirmación con el fin de dividir los cambios grandes en una serie de confirmaciones más pequeñas. Al reducir el ámbito de las confirmaciones, es más fácil revisar el historial de confirmaciones para buscar cambios de archivo específicos.
Características de Git
- Es muy potente
- No depende de un repositorio central
- Es un software libre
- Es rápido
- Es multiplataforma
- Es flexible ya que permite trabajar en varios flujos de trabajo distintos gracias a su sistema de trabajo con ramas
- Facilita el trabajo en equipo
- Permite trabajar sin conexión
Conclusión
Más del 90% de los desarrolladores utilizan esta potente herramienta para trabajar en sus proyectos. Tener un historial detallado con todas las versiones por las que ha pasado un proyecto ayuda a disminuir los errores, a corregirlos más rápido, a probar diferentes cosas...
Es una herramienta indispensable que debes aprender a manejar si estás pensando en desarrollar tus propios proyectos de ciencia de datos.