Technics‎ > ‎

GIT

Git es un software distribuido de control de versión que hace foco en la velocidad, la efectividad y la usabilidad del mundo real en proyectos de gran escala. Sus puntos fuertes son:
  • Desarrollo distribuido: Git le da a cada desarrollador la posibilidad de tener una copia local de sus archivos versionados, y los cambios son copiados automáticamente de un repositorio a otro, Estos cambios pueden ser importados como ramas de desarrollo adicionales, y pueden luego ser incorporadas de la misma manera que se incorporan las ramas locales. Los repositorios pueden ser accedidos mediante un protocolo propio que lleva su nombre, Git, y que soporta SSH) o simplemente usando HTTP. Se puede publicar un repositorio en cualquier lugar sin ninguna configuración especial o adicional de un servidor web Linux.
  • Buen soporte para desarrollo no lineal: Git posee una forma rápida y práctica de manejar diferentes ramas y mezclas, e incluye poderosas herramientas para visualizar y navegar en el historial de desarrollo no lineal. Manejo eficiente para proyectos grandes. Git es extremadamente rápido y escala muy bien, aún en grandes proyectos con largos historiales. Es significativamente más rápido que otros sistemas de control de versiones. También utiliza un formato de paquetes extremadamente eficiente para revisiones a largo plazo que es superior que cualquier otro software de manejo de versiones de código abierto.
  • Autenticación encriptada del historial:El historial del Git se guarda de forma que el nombre de una versión en particular (un “commit”) depende de la historia completa de los llamados “commits”. Una vez que son publicados, no es posible cambiar las versiones anteriores sin notarlo. También se pueden aplicar etiquetas con firmas encriptadas.
  • Diseño en partes: Siguiendo la tradición de Unix, Git es una colección de pequeñas herramientas escritas en lenguaje C, y un número de scripts que proveen prácticos wrappers. Git proporciona herramientas tanto para un uno amigable y scripts sencillas para realizar ingeniosas operaciones. Aparte de proporcionar un sistema de control de versiones, el proyecto Git proporciona un conjunto de herramientas genéricas de bajo nivel para un almacenamiento de historial ramificado y un manejo del contenido de los directorios. Tradicionalmente este conjunto de herramientas era llamado plumbing. Aparte de la interfaz que viene con Git, muchos otros proyectos (también llamados porcelains) ofrecen control de interfaces compatibles.
Gráficamente


Este gráfico es un ejemplo de como se puede armar un escenario Git, pero el punto a favor de esto es que se puede armar cualquier tipo de escenario y es muy práctico tanto para pequeños proyectos como para proyectos de gran envergadura.
Estos son algunos proyectos que utilizan Git:
  • Git
  • Linux Kernel
  • Perl
  • Eclipse
  • Gnome
  • KDE
  • Qt
  • Ruby on Rails
  • Android
  • PostgreSQL
  • Debian
  • X.org
Sin lugar a dudas Git posee muchos puntos a favor sobre softwares de su misma clase. Pero hay un detalle clave y es que el creador de este software pequeño, simple y eficaz es nada
menos que Linus Torvalds. Git también es libre, de código abierto y miembro de la asociación The Software Freedom Conservancy, una asociación sin fines de lucro que promueve, mejora, desarrolla y defiende los proyectos de software libre y de código abierto.

Referencias
  • Git - http://git-scm.com/
  • The Software Freedom Conservancy - http://sfconservancy.org/
  • Github - https://github.com/
  • Git manual - http://schacon.github.com/git/user-manual.html
Author: Lucas Dima. Researcher @ AIGROUP, working in the Einstein Project. Professor of Videogames Evolution @ Universidad de Palermo.