Git, el control de versiones y como interaccionar con GitHub

Introducción

Estaba empezando a escribir los dos próximos artículos referentes a la programación de aplicaciones para Ubuntu Phone OS, cuando me he dado cuenta de últimamente estoy haciendo uso de GitHub para mostrar el desarrollo de aplicaciones en Android y Ubuntu Phone OS, pero habrá quien no conozca este servicio, y/o que no tenga ningún conocimiento sobre el control de versiones.

Lo cierto es que hasta hace unos años, yo era un completo desconocedor de esta herramienta tan potente. Pero una vez que la descubrí, llegué a la firme convicción que debería de aplicarse en muchos otros campos a parte de la programación.

Control de versiones

Para explicar el concepto del control de versiones me centraré básicamente en el campo de la informático y del desarrollo de código, pero verás, que fácilmente es extensible a cualquier otro campo.

Al fin y al cabo, el control de versiones, es un sistema de gestión de los cambios que vamos realizando en el código de un programa informático. De esta forma vamos registrando cada uno de los cambios que vamos realizando. Así, por ejemplo, y hablando de My-Weather-Indicator, cada vez que realizo un cambio significativo en el código, lo registro. De esta manera, en un momento determinado, si uno de los cambios realizados no producen el resultado que esperaba puede volver a una «versión anterior» del código. Igualmente, puedo ver que es lo que cambié en cada una de las diferentes versiones que hice.

Para llevar un control de cambios habitualmente se utiliza alguna herramienta informática. En mi caso particular empezé con CVS y Subversion, hasta que conocí Bazaar, del cual estoy profundamente enamorado por su simplicidad y sencillez. Hasta el momento es el servicio que utilizo normalmente para relacionarme con Launchpad, que es el servicio que pone Canonical a nuestra disposición para el código relacionado con Ubuntu, y que facilita entre otros aspectos el seguimiento de errores, la traducción de aplicaciones, la interacción con el usuario, facilitándole al desarrollador su trabajo.

Sin embargo, y tal y como comenté en la introducción, para estos ejemplos de desarrollo, estoy utilizando GitHub. Lo cierto es que no tengo muy clara la razón, pero como me gusta probar nuevos servicios, y este es ampliamente utilizado, decidí probarlo también.

¿Y como nos relacionamos con GitHub?

Git

Para relacionarnos con GitHub, tenemos Git, que es un sistema de control de versiones diseñado por Linus Torvalds, con el objetivo principal de la eficiencia y la confiabilidad del mantenimiento, sobre todo cuando se trata de aplicaciones con muchos archivos de código (Wikipedia).

Instalación

Para poder instalar Git en Ubuntu solo tienes que hacer clic en Git, o bien, desde el terminal ejecutar el siguiente comando:


sudo apt-get install git

Uso

No se trata de profundizar en el uso de la aplicación, vamos a ver lo básico para que puedas iniciarte, y descargar los ejemplos y aplicaciones que hay en GitHub que estoy tratando de desarrollar en común.

Por ejemplo, para descargar un repositorio, en este caso el de Equival, solo tienes que ejecutar el siguiente comando, que creará una copia exacta del que existe en GitHub:


 git clone https://github.com/atareao/equival.git

Si queremos crear un nuevo repositorio en nuestro equipo, ejecutaremos el siguiente comando:


git init

Una vez creado, podemos hacer diferentes operaciones, por ejemplo añadir nuevos archivos al repositorio,


git add [nombre archivo]

o para añadir todos los archivos existentes:


git add .

Para borrar archivos del repositorio:


git rm [nombre archivo]

Una vez hemos hecho todos los cambios que necesitamos, añadir, borrar, modificar, etc, es necesario registrar todos esos cambios. Para ello ejecutaremos el siguiente comando:


git commit -m "Un mensaje"

Es muy interesante que en cada registro que hagamos añadamos un mensaje para saber en que consistieron los cambios realizados. Yo suelo añadir, tanto las características nuevas, como un listado de bugs.

Ahora llegó el momento de subir todo a nuestro repositorio (previamente creado) en GitHub, algo tan sencillo como ejecutar el siguiente comando:


git push https://github.com/atareao/equival.git

Por último, si sois varios los que trabajais sobre le mismo código, es interesante, antes de realizar nuevos cambios que desargues y mezcles la última versión existente en el repositorio:


git pull https://github.com/atareao/equival.git

Visores

Por último, una lista de visores que nos ayudarán para relacionarnos con el sistema de gestión de versiones

  • gitk – utiliza Tcl/Tk
  • git gui – utiliza Tcl/Tk
  • QGit –  utiliza Qt
  • Giggle – utiliza GTK+
  • git-cola – utiliza PyQt4
  • gitg -un clon de GitX versión GTK+/GNOME
  • tig – text mode interface for git, una interfaz para el terminal que utiliza ncurses

Cualquiera de estos visores te mostrará algo como lo que puedes ver en esta imagen, si bien, esta corresponde a Baazar Explorer. Aunque no se corresponde con lo Git, si que te servirá para hacerte una idea.

Baazar

Conclusiones

Como ves se trata de una herramienta verdaderamente poderosa y que con poco orden que lleves puede resultar altamente productivo. Tal y como he comentado en la introducción, esto no solo puede ser beneficioso en el campo de la informática, sino que puede ser interesante para cualquier aspecto. Desde el desarrollo de un proyecto de ingeniería, o que tal escribir un libro, o cualquier otro tipo de actividad, donde queramos tener un registro pormenorizado de los cambios que vamos realizado.

3 comentarios en “Git, el control de versiones y como interaccionar con GitHub

  1. GA
    Gabriel C hace 12 años

    gracias por el post, no estoy acostumnbrado a git.

  2. DA
    David Gómez hace 12 años

    Me gusto bastante este artículo pues yo soy uno que también esta comenzando a usar Github.

    Por cierto, quería comentarte que el Blog esta cargando un poco lento en móviles. Tal vez quisieras simplificar un poco el diseño para las pantallas más pequeñas.

  3. LU
    Luis Carmona hace 12 años

    Excelente explicación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *