Git es, con diferencia, el sistema de control de versiones moderno más utilizado del mundo, se ha convertido en el estándar mundial para el control de versiones.
Es un sistema de control de versiones distribuido. Esto significa que un clon local del proyecto es un repositorio de control de versiones completo.
La flexibilidad y popularidad de Git la convierten en una excelente opción para cualquier equipo. La comunidad de usuarios de Git ha creado muchos recursos para entrenar a los desarrolladores y la popularidad de Git facilita la ayuda cuando es necesario. Casi todos los entornos de desarrollo tienen compatibilidad con Git y las herramientas de línea de comandos de Git se ejecutan en todos los sistemas operativos principales.
Conceptos básicos de Git
Cada vez que se guarda el trabajo, Git crea una confirmación. Una confirmación es una instantánea de todos los archivos en un momento dado. Si un archivo no ha cambiado de una confirmación a la siguiente, Git usa el archivo almacenado anteriormente. Este diseño difiere de otros sistemas que almacenan una versión inicial de un archivo y mantienen un registro de diferencias a lo largo del tiempo.
Ramas
Cada desarrollador guarda los cambios en su propio repositorio de código local. Como resultado, puede haber muchos cambios diferentes basados en la misma confirmación. Git proporciona herramientas para aislar los cambios y volver a combinarlos posteriormente. Las ramas, que son punteros ligeros para trabajar en curso, administran esta separación. Una vez finalizado el trabajo creado en una rama, se puede combinar de nuevo en la rama principal (o troncal) del equipo.
Archivos y confirmaciones
Los archivos de Git se encuentran en uno de estos tres estados: 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 contiene todos los cambios 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.
Ventajas de Git
Desarrollo simultáneo
Todos tienen su propia copia local de código y pueden trabajar simultáneamente en sus propias ramas. Git funciona sin conexión, ya que casi todas las operaciones son locales.
Versiones más rápidas
Las ramas permiten un desarrollo flexible y simultáneo. La rama principal contiene código estable y de alta calidad del que se libera. Las ramas de características contienen trabajo en curso, que se combina con la rama principal tras la finalización. Al separar la rama de versión del desarrollo en curso, es más fácil administrar el código estable y enviar actualizaciones más rápidamente.
Integración
Debido a su popularidad, Git se integra en la mayoría de las herramientas y productos. Cada IDE principal tiene compatibilidad integrada con Git y muchas herramientas admiten la integración continua, la implementación continua, las pruebas automatizadas, el seguimiento de elementos de trabajo, las métricas y la integración de características de informes con Git. Esta integración simplifica el flujo de trabajo diario.
Soporte técnico de la comunidad sólida
Git es de código abierto y se ha convertido en el estándar de facto para el control de versiones, por lo que no hay escasez de herramientas y recursos disponibles para que los equipos los aprovechen. El volumen de compatibilidad de la comunidad con Git en comparación con otros sistemas de control de versiones facilita la ayuda cuando es necesario.
Git funciona con cualquier equipo
El uso de Git con una herramienta de administración de código fuente puede aumentar la productividad de un equipo fomentando la colaboración, aplicando directivas, automatizando procesos y mejorando la visibilidad y la rastreabilidad del trabajo. El equipo puede instalarse en herramientas individuales para el control de versiones, el seguimiento de elementos de trabajo y la integración e implementación continuas. O bien, pueden elegir una solución como GitHub que admita todas estas tareas en un solo lugar.
Solicitudes de incorporación de cambios
Use las solicitudes de extracción (pull request) para analizar los cambios de código con el equipo antes de combinarlos en la rama principal. Las discusiones en las solicitudes de extracción son muy valiosas para garantizar la calidad del código y aumentar el conocimiento en todo el equipo.
Plataformas como GitHub ofrecen una experiencia de solicitud de extracción enriquez en la que los desarrolladores pueden examinar los cambios de archivo, dejar comentarios, inspeccionar confirmaciones, ver compilaciones y votar para aprobar el código.
- Es muy potente
- Fue diseñada por Linus Torvalds
- No depende de un repositorio central
- Es software libre
- Con ella podemos mantener un historial completo de versiones
- Podemos movernos, como si tuviéramos un puntero en el tiempo, por todas las revisiones de código y desplazarnos una manera muy ágil.
- Es muy rápida
- Tiene un sistema de trabajo con ramas que lo hace especialmente potente
- En cuanto a la funcionalidad de las ramas, las mismas están destinadas a provocar proyectos divergentes de un proyecto principal, para hacer experimentos o para probar nuevas funcionalidades.
- Las ramas pueden tener una línea de progreso diferente de la rama principal donde está el core de nuestro desarrollo. En algún momento podemos llegar a probar algunas de esas mejoras o cambios en el código y hacer una fusión a nuestro proyecto principal, ya que todo esto lo maneja Git de una forma muy eficiente