Tutorial-De-Git
Fuente original: http://hoth.entp.com/output/git_for_designers.html
Traducido al español por Rodolinux: http://www.rodolinux.com.ar
Formato del texto e imágenes agregadas por Pablo Luis Martinez – Sgo del Estero
El control de versiones, también conocido como control de fuentes o control de revisiones es parte
integral de cualquier flujo de trabajo (workflow) de desarrollo.¿Porqué? Es esencialmente una
herramienta de comunicación, como los emails o IM, pero trabaja con código en vez de
conversaciones humanas.
Control de versiones:
•
•
•
•
•
•
permite a los programadores comunicar fácilmente su trabajo a otros.
le permite a un equipo compartir el código.
mantener versiones separadas de “producción” que están siempre deployables.
permite el desarrollosimultáneo de diferentes características en el mismo código base.
mantiene la pista de todas las versiones viejas de archivos.
previene que se sobrescriba trabajo.
¿Qué es el control de versiones?
El control de versiones, alternativamente conocido también como control de código fuente o
administración de código fuente, es un sistema que mantiene versiones de los archivos en las etapasprogresivas del desarrollo. El sistema de control de versiones es similar en teoría a respaldar tus
archivos, pero más inteligente. Cada archivo en el sistema tiene una historia completa de cambios, y
puede ser fácilmente restaurado a cualquier versión de su historia. Cada versión tiene un
identificador único que luce como una cadena de letras y números. (443e63e6..).
Hay muchos programasdiferentes de control de versiones. Este documento se basa en git, pero
tambien puedes estudiar Subversion (svn), CVS, darcs, Mercurial y otros. Cada uno tiene una
slightly different metaphor for operation.
Estructura del Repositorio
La versión más simple del sistema de control de versiones consiste de un repositorio en donde todos
los archivos y sus versiones viven. Simplemente, un repositoriotrabaja como una base de datos;
puede devolver cualquier versión de cualquier archivo dentro, o el historial de cambios de cualquier
archivo,o quizás un historial de los cambios a través del proyecto entero.
#25 Joe Adjust user profile information
#24 Fred Add login box
#23 Mary Allow user photo uploads
1 de 11
#22 Joe Change the color of the header to yellow
#21 Mary Change theheader to blue
El repositorio de usuarios puede chequear una copia de trabajo, la cual es una copia de los últimos
archivos a los que los usuarios pueden aplicar cambios. Después de hacer algunos cambios, los
usuarios pueden entonces ingresar (check in o commit) los cambios al repositorio, el cual crea una
nueva versión con metadata referida a los cambios que fueron aplicados y a la persona quelos hizo.
Figura 1: Un sistema básico de control de versiones
Si bien la forma más simple es tener un fuente canónico para el repositorio, esto no es necesario.
Cada usuario tiene una copia completa del repositorio en su maquina local. Generalmente, tu
aplicarás cambios a tu repositorio local, y una vez que esté completo, empujaras (push) tu trabajo al
repositorio compartido de tu equipo.También puedes tirar (pull) de los cambios de otros
repositorios.
2 de 11
Figura 2: Un sistema de control de fuentes distribuido
Ramas (Branches)
Las ramas cumplen el mismo rol que el borrador cuando escribes un mail. Puedes trabajar en un
borrador, guardándolo frecuentemente hasta que esté completo.; entonces, cuando esté listo, envías
el email, y el borrador es eliminado. En estecaso, la carpeta de Enviados no se poluciona con tus
cambios frecuentes, hasta que tu presionas “enviar”.
El branching es útil cuando desarrollas nuevas características, debido a que permite a la rama
maestra –la carpeta de Enviados – estar trabajando siempre y deployable. Puede haber cualquier
número de borradores –ramas experimentales- en desarrollo activo. Las ramas son fáciles crear y de...
Regístrate para leer el documento completo.