Primeros pasos con Git

¿Qué es?

By Jason Long (http://git-scm.com/downloads/logos) [CC BY 3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons

By Jason Long (http://git-scm.com/downloads/logos) [CC BY 3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons

En este tutorial, vamos a aprender a instalar y utilizar Git en Windows 7 para versionar el código de nuestros proyectos. Según Wikipedia, Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente.

La página oficial de Git se encuentra en:

http://git-scm.com/

¿Cómo instalarlo?

En primer lugar, descargamos la última versión del instalador (en mi caso, la 2.2.2) de la web oficial:

Descargar Git

Descargar Git

Una vez descargado (la versión 1.9.5 que me he descargado ocupa 16,9 MB), ejecutamos el instalador y seguimos los pasos que nos indica, hasta que nos salga la pantalla «Adjusting your PATH enviroment«. En esta pantalla, por defecto viene seleccionada la opción «Use Git from Git Bash only«, que es la opción básica, que podéis usar perfectamente, pero yo recomiendo marcar «Use Git and optional Unix tools from the Windows Command Prompt«, que nos permitirá ejecutar tanto comandos Git como los comandos básicos de Unix desde la consola de comandos de Windows, algo que, para quienes nos hemos movido por los mundos de Unix, nos es más que útil. Este paso queda a vuestra elección, pero para éste y posteriores tutoriales, daré por hecho que se habéis seleccionado la misma opción que yo.

Instalar comandos Unix

Instalar comandos Unix

Continuamos dándole a Next en el resto de pasos sin modificar nada y, cuando termine la instalación, le damos a Finish. Podemos comprobar que está instalado abriendo una consola de comandos (Inicio -> Ejecutar -> cmd) y escribiendo:

git --version

Lo cual nos mostrará la versión instalada de Git.

Clonar un repositorio

Para clonar un repositorio de un proyecto ya existente y del cual tenemos su dirección, creamos un directorio donde almacenar nuestro proyecto clonado, Por ejemplo, dentro de «D:/Desarrollo/pruebas/git«. Una vez creado este directorio, accedemos a él mediante la consola de comandos (Inicio -> Ejecutar -> cmd, y nos movemos hasta el directorio creado).

Una vez dentro del directorio, clonamos el repositorio git mediante:

git clone direccion

Donde «direccion» es la dirección donde se encuentra alojado el repositorio git. En este tutorial, no vamos a trabajar con servidores reales.

Iniciar un repositorio

En este paso, vamos a iniciar un repositorio de código en nuestro equipo, como si éste se tratase de un servidor. Este paso lo damos para continuar con el tutorial y poder practicar los comandos básicos, pero normalmente, nos bajaremos el código de un servidor, como GitHub o Bitbucket, o montaremos el nuestro propio en un servidor que no sea nuestro ordenador.

Lo primero de todo, vamos a crear un directorio donde almacenar nuestro proyecto demo. Por ejemplo, dentro de «D:/Desarrollo/pruebas/git«. Una vez creado este directorio, accedemos a él mediante la consola de comandos (Inicio -> Ejecutar -> cmd, y nos movemos hasta el directorio creado).

Una vez dentro del directorio, iniciamos el repositorio git mediante:

git init

Esto nos creará en el directorio un archivo oculto llamado .git.

Comprobar el estado

Con este comando podremos comprobar la sincronización de archivos entre nuestro equipo y el servidor.

git status

Como acabamos de empezar el proyecto, el status tiene que devolvernos que no hay nada pendiente, algo como esto:

On branch master
Initial commit
nothing to commit (create/copy files and use "git add" to track)

Esto significa que:

  • Estamos en la rama principal, la rama master (no vamos a entrar en detalles de ramas en este tutorial).
  • Es el primer commit (la primera «confirmación de código», lo veremos más adelante).
  • No hay nada para subir todavía. Podemos subir archivos y añadirlos.

Así que, vamos a hacer caso al mensaje, y añadir nuestro primer archivo.

Añadir archivos

En este paso, metemos un archivo de texto cualquiera en la carpeta de nuestro proyecto de prueba, por ejemplo, prueba.txt. Meted el contenido que queráis, en mi caso, he puesto «Contenido de prueba.».

si ahora ejecutamos git status, nos dirá que el archivo prueba.txt (resaltado en rojo) necesita ser añadido. Para ello, usamos la siguiente orden:

git add prueba.txt

Esto añadirá prueba.txt a la lista de archivos que git va a rastrear, es decir, le notificamos a git que este archivo existe y en algún momento lo subiremos al servidor (todavía no lo hemos subido).

Si ahora volvemos a ejecutar git status (es una buena costumbre ejecutar este comando después de hacer cualquier cosa, para comprobar los resultados), veremos que hay un cambio pendiente de ser confirmado (changes to be commited), y ese cambio, es que hay un nuevo archivo llamado prueba.txt, que es el que hemos añadido.

Confirmar cambios

Para confirmar el archivo que hemos añadido o cualquier cambio que hayamos hecho, ejecutamos:

git commit -m "Nuevo archivo de prueba"

Esto confirmará el cambio con un mensaje que nos será útil para saber qué cambios hemos hecho (por ejemplo, si estoy haciendo una tarea y esta tarea ha implicado cambiar varios archivos, puedo poner como mensaje el nombre de la tarea, para tener identificado en qué momento hice esos cambios). Os recomiendo que siempre pongáis mensajes con sentido, como el nombre de la tarea, refactorización, incidencia o historia en la que estéis trabajando.

Si volvemos a ejecutar git status, veremos que no hay nada pendiente, de modo que nuestros cambios han sido guardados, pero esto no significa que estén en el servidor.

Modificar archivos

Ahora podemos probar a modificar el archivo que hemos subido y ejecutar de nuevo git status. Veremos cómo nos indica que este archivo ha sido modificado, lo cual, vuelve a requerir hacer git commit de nuevo.

Subir los cambios al servidor

Para subir todo en lo que hemos estado trabajando al servidor (podemos tener varios commits pendientes), ejecutamos el siguiente archivo:

git push origin master

Esto NO nos va a funcionar (funcionaría si en vez de iniciar el proyecto hubiéramos clonado uno existente), ya que no estamos usando un servidor real, sino nuestro equipo, pero necesitáis conocerlo para cuando trabajemos con servidores git remotos. Lo que hace este comando, es subir los cambios de la rama master al repositorio origen.

Actualizar nuestro repositorio

El último comando que veremos en este tutorial, sirve para actualizar nuestro código con los cambios que existan en el servidor que hayan subido otros desarrolladores. Sólo tenemos que ejcutar:

git pull

Esto nos dará un error, indicado que no se ha especificado ningún repositorio remoto. Si hubiéramos clonado un repositorio, funcionaría siempre y cuando tengamos permisos.

Ciclo de trabajo con git

En un proyecto en el que se utiliza un control de versiones, es importante estar siempre actualizado con el servidor, esto es, actualizarnos periódicamente (git pull) y subir los cambios que hagamos (git add, git commit, git pull).

Lo primero que hariámos sería solicitar a quien ha creado el repositorio la dirección de descarga, para clonarlo en nuestro equipo (git clone).

Una vez clonado, configuramos el entorno de desarrollo oportuno y comprobamos que todo funciona bien.

Ahora, empezaríamos una nueva tarea (por ejemplo, resolver la incidencia 008). Nos actualizamos con el servidor (git pull) y hacemos los cambios necesarios en el código. Una vez hemos terminado y probado y verificado que todo funciona bien y no rompe nada, añadimos archivos con git add y después confirmamos los cambios con git commit, con mensaje «Resuelta la incidencia 008». Por último, subimos los cambios con git push origin master (si estamos trabajando sólo en esa rama, si no, lo subimos a la rama que corresponda, pero por simplificar, trabajamos sólo con master) y marcamos la tarea como finalizada. No está de más hacer un git pull antes de git push, para así evitar posibles conflictos de código.

Temas pendientes

Este tutorial es sólo una pequeña introducción a git. Se quedan pendientes temas importantes, como las ramas, que he ido mencionando muy por encima, los conflictos sobre un mismo archivo que han tocado dos desarrolladores diferentes, o .gitignore, que indica qué archivos no deben ser subidos al repositorio remoto o servidor. Iré tratándolos en próximos tutoriales.

diegorys

Ingeniero en Informática, apasionado de la robótica, con alma de investigador en nuevas tecnologías, analista programador y profesional del desarrollo ágil en entornos web y smartphones, con amplios conocimientos y experiencia desde antes de 2008 en entornos WAMP/LAMP, experimentando con Arduino desde 2012 y con Raspberry Pi desde 2014.

Share

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.