Git (Organización y Sistemas de Información)

De Departamento de Informatica
Saltar a: navegación, buscar

Git, tecnología de control de versiones, es utilizado en el contexto de una organización para el manejo de proyectos de programación (en su mayoria), con el objetivo de que el trabajo sea más colaborativo e integral por parte de los usuarios que trabajan en este.

Contenido

Breve Historia y Funcionamiento

Linus Torvalds, creador de Git

Construido en C, Bourne Shell y Perl, Git fue concebido y diseñado por Linus Torvalds, creador también de la kernel de Linux. Uno de sus pilares fundamentales son la eficiencia y confiabilidad en el mantenimiento de versiones para proyectos compuestos por grandes cantidades de archivos y contribuyentes a este. Su funcionamiento es simple, se crea un proyecto una vez ingresado en el servidor el cual tenga habilitado Git (como lo es gitlab.labcomp.cl para nosotros) y se crean las zonas de repositorios o ramas (branch) correspondientes. Se recomienda la creación de 4 ramas, las cuales responden a distintas necesidades:

  • Master:

Es la rama mas estable y es en esta en donde se encuentra alojado nuestro proyecto principal, la cual aloja a todos los archivos los cuales han sido escritos por los integrantes del equipo.

  • Development:

Esta rama es sacada de la rama Master, y contiene cada una de las funcionalidades del proyecto que están en desarrollo, es decir, todas las funcionalidades inestables o en escritura temprana, y es acá en donde se trabaja por el funcionamiento de todas estas en conjunto antes de agregarlas al proyecto principal. Esta rama puede ser combinada e insertada (merge) a la rama Master una vez que se encuentre estable y con sus errores corregidos.

  • Features:

Esta rama es unica por cada nueva funcionalidad de nuestro proyecto, y en esta se trabaja con las primeras lineas de código y organización de sus archivos antes de pasarla a la rama Development. El merge de esta rama con Development queda a criterio de la organización o del sub-equipo encargado de esto; básicamente cuando el código de la nueva funcionalidad tenga forma y pueda entenderse la finalidad de este.

  • Hotfix:

Como lo dice su traducción, esta rama trata los errores o bugs que surgen del proyecto de la manera más inmediata posible. Una vez solucionado el problema, esta rama se mezcla con la rama Master y esta a su vez con la rama Development, y esto permite que un error no vuelva a repetirse en posteriores versiones del proyecto. Para mayor información de su utilización, visitar Git.

Contexto Organizacional de Uso

Ejemplo de una distribución en una organización

Git es ampliamente valorado por la cantidad de funcionalidades para el trabajo en equipo para proyectos de gran magnitud, como lo son la distribución de permisos que tiene cada usuario dentro de la producción del proyecto, las configuracion de los comandos especificos para cada tipo de usuario (por ejemplo: para los creadores de una app para IOS, los creadores de los entornos gráficos no pueden hacer un pull de la rama Master), o la creación de subgrupos de trabajos o "Teams". Uno de los ejemplos mas notables del uso organizacional de Git es el mantenimiento y mejora de la kernel de Linux, la cual tiene contribuciones en código de miles de programadores alrededor del mundo. Es así como Git también permite el trabajo a distancia de un grupo de personas a través de internet, permitiendo el trabajo organizacional plurinacional o derrotando los problemas que la distancia pone. Git posee planes pagados para las organizaciones con fines de lucro, pero es totalmente gratis para desarrolladores u organizaciones comprometidos con el software Open Source, o incluso para uso académico.

El rol de la Persona

Dentro de una organización, las personas que la componen son el pilar fundamental del correcto funcionamiento y de la prosperidad colectiva que se tiene como meta dentro de dicha organización, y en este sentido Git para las personas es una herramienta. La persona que utiliza esta tecnología dentro de la organización influye de manera directa dentro de un proyecto al promoverse la propositividad (y con esto las buenas ideas) al dar la posibilidad de contar con muchas personas observando lo mismo. Por otra parte, esta cumple la función de regulador de sus propios pares al exigir un correcto orden y buenas prácticas con el fin de obtener una alta legibilidad.

Ventajas

Las ventajas de utilizar Git en una organización para el trabajo colaborativo son las siguientes:

  • Trabajo offline:
Cada persona puede trabajar con la ultima copia del proyecto en su computador sin la necesidad de estar con internet permanentemente, esto ya que Git hace que todos los usuarios que trabajan en el proyecto lo tengan copiado completamente de manera local. Luego de esto se mezcla con lo ya existente una vez haya conexión.
  • El "commit" y el historial de cada rama:
Los usuarios que trabajan con Git, al realizar cambios en el proyecto, deben comentar brevemente el cambio realizado antes de subir su cambio. Esto permite tener una historia del proyecto, los cambios realizados por los usuarios dentro de la organización y tener un orden de avance para cada Team dentro de su area de desarrollo.
  • Control de Versiones:
El control de versiones es el plato fuerte de Git. Este es capaz, a traves de su sistema distribuido, de tener una eficiente mecanismo de detección de diferencias y, gracias a esto, generar las uniones de cambios donde se debe. Esto incurre a una alta optimización y eficiencia de trabajo en proyectos muy grandes, en donde la cantidad de personas trabajando en este es igual de grande.

Desventajas

  • Aprendizaje de comandos:
Para la correcta utilización de Git, es necesario el aprendizaje de una serie de comandos y el contexto de cada una de sus utilizaciones, lo cual, para el contexto organizacional, proyecta una capacitación para las personas que no estén acostumbradas a utilizar este tipo de sistemas (aunque esto es rarisimo en estos tiempos).
  • Difícil multiplataformismo:
Git es una herramienta perfecta para la plataforma GNU/Linux ya que está optimizada para la utilización de esta en esta plataforma, y si bien existen versiones para otras plataformas, el hecho de instalarlas y utilizarlas en un SO que no tienen tan naturalizada la terminal de comandos ya resulta tedioso.
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas