Debido al tutorial sobre estructuras de datos en C++, donde compartí el código fuente utilizando la herramienta de GitHub, muchos han estado pidiéndome que les muestre cómo comenzar a utilizar la herramienta git y en qué consiste la misma; así que a eso dedicaré la entrada de hoy.
Para poder explicarte el porqué de utilizar este software, comenzaré por mostrarte en qué consiste tanto Git como GitHub y que puedas identificar por tu propia cuenta las ventajas que tiene utilizar este sistema.
Git
Git es un sistema de control de versiones. Es decir, que es una herramienta que nos permite visualizar y manejar nuestro código de manera ordenada, eficiente y eficaz.
Hoy día, un sinnúmero de desarrolladores lo utilizan para su proyectos, ya que permite el trabajo en software de manera colaborativa sin perder el rastro del proyecto principal; dando la oportunidad a cada individuo de crear ramas para trabajar en secciones del programa de forma independiente e integrar posteriormente los cambios sin perder progreso.
GitHub
GitHub es un sitio web especializado para alojamiento de proyectos que utilizan el sistema de control de versiones Git. Dentro de GitHub se pueden encontrar repositorios (así llamados los proyectos) de una gran cantidad de software libre y de código abierto, así como repositorios privados a los que únicamente tienen acceso los miembros de empresas para su utilización.
Ahora que ya tienes un idea de en qué consisten Git y GitHub es hora de iniciar en este sencillo trayecto del control de versiones.
Comenzando con GitHub
-
Lo primero que vamos a hacer es registrar nuestra cuenta en la página de GitHub. En mi caso, ya la tenía creada, así que puedes visitarla en el siguiente enlace.
-
Ahora descargaremos la versión de Git correspondiente a nuestro sistema operativo de la sección de descargas. Los ejemplos que mostraré serán utilizando Linux; pero aparte de la instalación, no difiere mucho en cuanto a cómo se trabaja.La diferencia simplemente es que en Windows se estará utilizando un Git Shell y en Linux la terminal.
Aclarando también que existen clientes para utilizar Git con interfaz gráfica, pero hoy lo mostraré mediante línea de comandos para explicar su uso. Igualmente dejaré algunos clientes al final de la entrada por si se desean utilizar.
-
Ya que hemos instalado Git, le daremos la configuración inicial para utilizarlo con GitHub. Para ello, vamos a ejecutar la Terminal(en el caso de Linux o un Git Shell en el caso de Windows) y escribiremos lo siguiente:
git config --global user.name "NOMBRE"
git config --global user.email "CORREO"
Las palabras NOMBRE y CORREO entre comillas, serán reemplazadas por nuestro usuario y el correo que utilizamos respectivamente. Ya con esto, tenemos configurado lo básico.
-
Ahora vamos a crear un repositorio con la opción que nos brinda GitHub en su página y luego pasaremos a clonar el repositorio existente para comenzar a trabajar con él desde tu computador. Para esta entrada, el repositorio ya estaba creado, así que procederé a clonarlo.
Nótese que sólo mostraré como trabajar en un repositorio propio y posteriormente enseñaré a trabajar con las ramas y así poder modificar repositorios de otros. Es decir, que con esta entrada podrás actualizar tus propios repositorios y mantener actualizada tu copia de alguno ajeno.
Clonar es crear una copia del repositorio para su uso fuera de línea.
Tomaremos como punto de partida mi repositorio sobre estructuras de datos. Para hacer esto, nos dirigimos a la página del repositorio y copiamos el enlace que aparece en la sección derecha, como en la imagen a continuación.
Ahora abrimos nuestra Terminal* en la carpeta que deseemos clonar el proyecto y escribimos esta línea.
git clone https://github.com/AlbertoCG/EstructurasDeDatos.git
Verás que se crean las carpetas del proyecto y ya tienes una copia en tu sistema. Por lo general, las carpetas .git y el archivo .gitignore están ocultos, pero yo los tengo para que sean mostrados por defecto. No te preocupes si no puedes verlos.
README.md es el archivo que se muestra al entrar a la página del repositorio y se utiliza para mostrar información general del mismo.De ahora en adelante estaremos utilizando mucho el comando
git status
para ver el estado de nuestros archivos. -
Continuando con esto, crearemos un nuevo archivo llamado ejemplo.txt para demostrarte cómo subir las modificaciones que hagamos al repositorio en GitHub. Si escribimos git status recibiremos un mensaje como este, expresando que han habido cambios, pero que no se han actualizado en el proyecto.
Para arreglar esto escribiremos:
git add ejemplo.txt
Así, nuestros archivos estarán en una etapa de 'listos para actualizar el proyecto'. Ya entonces actualizamos el proyecto escribiendo:
git commit -m "Subiendo ejemplo.txt"
- Ya nuestros cambios están listos para ser subidos al repositorio en línea; pero antes debemos hacer algo muy importante que consiste en crear el canal de subida para nuestro proyecto.Esto realiza de la siguiente manera (git remote add [shortname] [url]):
git remote add origin https://github.com/AlbertoCG/EstructurasDeDatos
Y al ver los cambios, tendremos que lo que realicemos en la rama origin/master serán cambios que se sincronicen con el repositorio que especificamos con su URL.
Nos quedaría configurado de la siguiente manera:
- Ahora que tenemos nuestro canal de subida configurado, vamos a subir los cambios con el comando push que 'empuja' los cambios al servidor:
git push origin master
Verás que solicita nuestro usuario de GitHub y posteriormente la contraseña.Las palabras origin y master significan que los cambios que realizamos en origin, se actualizan en la rama principal (master) de nuestro repositorio en línea.
Finalmente tendremos la notificación de los cambios en la página del repositorio y nuestro git status nos dirá que no han habido cambios.
Mantener actualizado tu repositorio
Modifiqué el archivo ejemplo.txt desde la página de GitHub, es decir, que nuestro repositorio local está desactualizado. De esto nos damos cuenta escribiendo:
git fetch
Donde se muestran las modificaciones que se han realizado. Pero con un sencillo
git pull
Se actualizan nuestros archivos con las últimas modificaciones.
Con esto ya debe ser suficiente para que puedas descargar los repositorios públicos de otros y trabajar de manera individual en tu propio repositorio. Las instrucciones más avanzadas para trabajar con Git, como las ramas y el 'staging' te las mostraré más adelante.
Por ahora, te comparto una hoja con los comandos más utilizados en Git y sus funciones, gracias a GitHub.
GitHub Cheatsheet (Removido)
También como prometí, algunos clientes con interfaz gráfica para Git son:
Una lista más completa la puedes encontrar en la página de git.
Gracias por leer, espero que haya sido de ayuda. Cualquier duda, sólo pregunta.