1 - ¿Qué es una aplicacion de control de versiones?

Git es una aplicación de control de versiones.

¿Qué es una aplicacion de control de versiones?

Un sistema de control de versiones es un programa que registra los cambios realizados en un conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones anteriores específicas más adelante si es necesario por ejemplo si introducimos errores o perdemos archivos, será posible recuperarlos fácilmente regresando a una versión anterior.

¿Qué hacíamos cuando no existían las aplicaciones de control de versiones?

Un método muy común y seguro que lo seguimos haciendo cuando implementamos pequeños proyectos personales es copiar los archivos a otro directorio, indicando la fecha y hora en que lo hicimos, y eventuamente un numero de versión.

Este método es muy común porque es muy sencillo, pero también es tremendamente propenso a errores. Es fácil olvidar en qué directorio se encuentras y guardar accidentalmente archivos equivocados o sobrescribir archivos y carpetas.

Git es un software de control de versiones distribuido para el seguimiento de cambios en cualquier conjunto de archivos, generalmente utilizado para coordinar el trabajo entre programadores que desarrollan un proyecto en común, pero perfectamente podemos utilizarlo a git en forma individual y solo en nuestra computadora.

Git a demostrado ser capaz de manejar grandes proyectos (como el kernel de Linux) en forma eficiente en cuanto a velocidad y tamaño de los datos, recordemos que linux tiene más de 25_000_000 de lineas de código fuente y hay participado mas de 25_000 desarrolladores.

Git es el sistema de control de versiones más utilizado en el mundo. Podemos decir que más del 90% de los desarrolladores utilizan git, este dato lo podemos consultar en las encuestas de Stackoverflow

Viendo la encuesta de stackoverflow podemos identificar que los profesionales hacen un uso masivo de git y los estudiantes se van integrando a git a medida que hacen proyectos mas complejos y la programación deja de ser el problema principal para administrar el proyecto.

Git fue creado originalmente por Linus Torvalds en 2005 para el desarrollo del kernel de Linux. El mismo año transfirió la posta para el mantenimiento al Japones Junio Hamano que se convierte en el mantenedor central del proyecto Git.

Hamano fue responsable del lanzamiento de la versión 1.0 de Git el 21 de diciembre de 2005. Luego vino las versiones 2 en 2014 y actualmente se encuentra la versión 2.39 a diciembre de 2022.

Datos del proyecto GIT, en números, que nos pueden asombrar

  • La aplicación git está codificada en C y consta de más de 560000 líneas.
  • El tiempo estimado para su desarrollo del proyecto git ha sido de 150 años-programador
  • Han contribuido más de 230 desarrolladores al proyecto git.

De donde surge el nombre Git

Linus Torvalds bromeó sarcásticamente sobre el nombre git (que significa "persona desagradable"): nos dice Linus "Soy un bastardo egoísta y nombro todos mis proyectos con mi nombre. Primero ' Linux ', ahora 'git'" es decir bromea o no con que es una persona desagradable y realmente a veces se comporta como tal.

Los objetivos de git incluyen:

  1. Completamente distribuido (a diferencia de los sistemas de control centralizados donde un servidor tiene el proyecto completo, en un sistema distribuido cada uno de los desarrolladores contiene el historial completo en su disco local)
  2. Velocidad (la velocidad de actualización es casi instantánea debido a que casi siempre todos las operaciones se hacen con archivos que se encuentran en la misma computadora)
    Por ejemplo si queremos ver los cambios introducidos en un archivo entre la versión actual y la de hace un mes, git puede buscar el archivo de hace un mes y hacer un cálculo de diferencias localmente, en lugar de tener que pedirle a un servidor remoto que lo haga, u obtener una versión antigua desde la red y hacerlo de manera local, hay que tener en claro que en nuestra computadora tenemos el historial completo del proyecto a lo largo del tiempo.
  3. Otra de las cualidades de Git es un Diseño sencillo
  4. Gran soporte para desarrollo no lineal (miles de ramas paralelas)

Git es un estándar de facto: Un gran número de desarrolladores ya tienen experiencia con Git y una parte importante de estudiantes de programación puede que solo haya aprendido a usar git.

Muchas herramientas de software ya traen integrado a git, por ejemplo VSCode trae ya integrado git, lo mismo que otros muchos editores.

Github no es lo mismo que git.

Github es una empresa, actualmente es propiedad de Microsoft y entre otros objetivos permite administrar en la nube repositorios git para que sean compartidos en forma privada o publica por un conjunto de programadores.

Github no es la unica empresa que permite administrar proyectos git en la nube, pero si es la mas grande.

Otras empresas son : GitLab, Bitbucket, Azure Repos etc.