Si desarrollas software (de manera profesional, como parte de la carrera o como hobby) habrá un antes y un después de los sistemas de Control de código fuente, control de versiones o, para los amigos, SCM.
Introducción
Existen en el mercado ahora mismo muchos, entre los que destacan Subversion, Mercurial, Git, o Team Foundation Server de Microsoft, cada uno tiene sus pros y sus contras, pero todos comparten la misma filosofía:
- Se mantiene un control incremental de versiones, es decir, que vas a tener almacenados los cambios desde el principio de tu proyecto
- Se basan todos en la acción de commit, un proceso que haremos de manera manual cada vez que queramos guardar una parte. Es importante recalcar que esto no interfiere con el curso natural del sistema, es decir, no reemplaza el guardado en disco bajo ningun concepto. En este proceso, podemos (y debemos) incluir una línea de texto con lo que hemos cambiado. Existe una norma no escrita que dice que si lo que has cambiado ocupa más de una línea, deberías haberlo separado en varios commit.
- En todos puedes volver atrás a un punto concreto de tu proyecto, o bien restaurar.
- En todos puedes hacer branches, o ramas de tu proyecto, para poder tener una rama principal (trunk), por ejemplo, y una dev para las cosas en las que quieras experimentar.
¿Qué tiene Git?
Una de las cosas que diferencian a Git de sistemas como Subversion, o Team Foundation, es la posibilidad de tener el repositorio en nuestra propia carpeta de trabajo, mientras que con los otros sistemas es necesario que exista un servidor con el que sincronizar (que sí, que lo podemos instalar en local, pero aún así, puede ser engorroso).
Esto se puede combinar además con repositorios remotos, de tal manera que podemos estar trabajando en nuestra copia local (en nuestro ordenador), hacer los commit necesarios hasta tener nuestro módulo listo, y una vez lo tengamos, hacer pull a un servidor remoto, donde varias personas estén trabajando en el mismo proyecto, cada una en un módulo.
Instalando Git
En la web oficial vienen todos los paquetes necesarios para poder usarlo, aunque si estamos en linux nada tan sencillo como hacer: sudo apt-get install git
Comandos básicos
Si hemos comprendido el concepto de commit, el resto será pan comido, os pongo los 3 comandos necesarios para el día a día, para el resto en la web oficial hay abundante documentación:
- git init Dentro de la carpeta que tengamos el proyecto, inicializa un repositorio git
- git add . Agrega todos los ficheros a la lista de archivos a sincronizar
- git commit -m «Mensaje del commit» Actualiza los archivos que hayamos agregado en el repositorio.
Como veis es un sistema que funciona fundamentalmente por línea de comandos, sin embargo tenemos varias interfaces para trabajar con git:
- En windows, el propio programa proporciona interfaz gráfica
- Para mac, tenemos GitX
- Para linux, podemos usar giggle
Además de las interfaces, podemos integrarlos con nuestro IDE favorito:
- Visual Studio 2008/2010: mediante el addon Git Source Control Provider
- Netbeans: Mediante un plugin desde la versión 7.0
- Eclipse: Mediante el addon EGit
- Apple XCode 4: de serie
Espero que te sea de utilidad.
Más infomación: Git-scm.com
Muy bueno el artículo! A ver si tengo un rato y lo pruebo con NetBeans…