Hace tiempo que GIT se está estableciendo como herramienta de para control de versiones, versátil, rápida y de fácil utilización. Debido a ello me he decidido a realizar unos artículos para analizar y comprobar el funcionamiento de dicha solución.
Escrita en una combinación de Perl, C y varios scripts de shell, ha sido diseñado por Linus Torvals orientado a las necesidades del desarrollo del kernel de linux y con los requisitos de estar desentralizado, ser flexible y totalmente robusto. Utilizados en aquellos entornos de desarrollo que se requiera compartir los ficheros de forma óptima, su arquitectura permite distribuir ficheros entre el respositorio principal y directamente entre los propios de desarrollo.
Este modelo descentralizado o distribuido lo diferencia de otras herramientas como Subversion o CVS, tipo modelo cliente-servidor, en:
- Permitir trabajar en offline
- Fácil modelo de colaboración entre los desarrolladores
- Se tienen copias completas del respositorio principal de forma distribuida
- Publicación de los repositorios por un gran número de protocolos
- Gestión sencilla del repositorio del servidor
- Utilización de otros repositorios como subversion o svk
- Los repositorios BARE denominarlos <nombre_repositorio>.git
- Generalmente se utilizan 4 tipos de ramas, aunque cada diseñador puede utilizar las que requiera localmente:
- Master; Rama principal
- Development; Rama de integración, sacada de la master y utilizada para nuevos desarrollos. Una vez confirmado su correcto funcionamiento, se debe fusionar con la master.
- Features; Cada funcionalidad nueva se crea en una rama feature. Cuando la funcionalidad esta desarrollada definitivamente, se integra con la rama Development hasta que ha pasado la fase de testing.
- Hotfix; Bugs surgidos de producción que se deben analizar, revisar y publicar de forma urgente. Sale directamente de master y vuelve ha master una vez corregida.
Enjoy!!!