El increíble Git IV. GitHub


En esta cuarta parte de la serie de Git te enseñaré a crear un repositorio en Github, para que puedas subir tus aplicaciones y colabores con otros.

¿Qué es GitHub?

Es el repositorio de código más grande que hay en el mundo. Tiene más de 17.4 millones y puedes tener tanto repositorios públicos como privados (estos últimos requieren de pago).

Cada proyecto que creas en tu perfil viene con importantes herramientas, como un seguidor de problemas (issues tracking), un pull request, que te permite tener por cada commit una conversación en forma de comentarios con los miembros del equipo y por último comparación de vistas (compare views) para comparar de forma fácil y eficiente las ramas que se han creado.

La plataforma cuenta con muchísimas otras características interesantes. Para conocer más, puedes visitar este apartado del sitio.

Registrarse en Github

Lo primero que harás es crear una cuenta en Github. Desde la página de inicio debes proporcionar un usuario, tu email y una contraseña.

Página inicial de GitHub

Fig1 Página inicial de GitHub

Al llenar el formulario puedes escoger entre varios planes que varían desde Free hasta Large. La diferencia entre el plan Free y los otros (que son pagados) es que no puedes utilizar repositorios privados, lo que significa que todos pueden ver tus archivos. Esto puede ser una ventaja, pues las oportunidades de colaboración son mayores con los proyectos públicos.

Escoger un plan para la cuenta

Fig2 Escoger un plan para la cuenta

Con esto ya tienes tu propia cuenta en GitHub. Te recomiendo sigas el tutorial que ellos te proponen cuando terminas el registro para que conozcas lo básico del sitio y puedas administrar tu proyecto sin escribir ningún comando.

No obstante, tarde o temprano tendrás que escribir algunos (subir los cambios, bajar código creado por alguien más etc), y es lo que pretendo enseñarte en esta guía.

Creando un repositorio

Un repositorio es donde alojarás el código fuente del proyecto que estás desarrollando. Desde la página de inicio selecciona el botón “+ New repository”, te saldrá un formulario como el siguiente:

Creando un repositorio nuevo

Fig3 Creando un repositorio nuevo

Le das un nombre y una descripción. Observa que este nombre es el que utilizarás para clonar el repo por lo que te aconsejo uno corto y de fácil memorización. El repositorio que creamos es público, al final se te da la opción de agregar un archivo README y una Licencia, que solo lo debes hacer si no tienes aún creado un proyecto git en tu PC que vayas a subir para el repo creado. Como en los artículos anteriores creé una app versionada con git desecho esta última opción.

Al enviar el formulario se muestra la pantalla de inicio del repo creado junto con una URL que es la que utilizarás para subir (push) y bajar (pull / clone) el código.

URL que identifica al repositorio

Fig4 URL que identifica al repositorio

Con esta URL y el proyecto que tengas creado en la PC estás listo para hacerlo público y utilizar todas las bondades de la plataforma en este.

Subiendo el código

Es fácil luego de tener tu proyecto versionado, compartir las nuevas características con el mundo. Solo tienes que aprender a trabajar con los remotes en Git. Un remote especifica en qué lugar remoto estará hosteado tu código. Este está formado por un nombre y una URL. Para conocer los remotes que tienes definido en el proyecto ejecuta lo siguiente:

git remote –v

La opción –v especifica que se muestre además la URL asociada al remote y así puedas ver a dónde apunta. Ahora agregaré un remote nuevo que apunte al repositorio creado en Github, para ello se escribe el siguiente comando sobre el proyecto:

git remote add mcaremote http://github.com/mycyberacademy/angularapp.git

Observa que el nombre del remote en este caso es “mcaremote”, implica que puedes ponerle el nombre que desees. Por defecto él toma como nombre “origin” si no especificas uno.

Si ejecutas nuevamente el comando git remote –v observarás que en realidad se han creado 2 remotes con el mismo nombre, uno para obtener los datos (fetch) y otro para enviarlos (push).

Visualizando los remotes

Fig5 Visualizando los remotes

Ahora solo resta escribir el siguiente comando para subir el código hacia la plataforma:

git push mcaremote master

Se te pedirán las credenciales para subir el código, por lo que debes proporcionar tu usuario y contraseña para que se pueda realizar la operación:

Enviando el codigo a GitHub

Fig6 Enviando el codigo a GitHub

La palabra “master” en ese comando especifica la rama en la que vivirá el código. El tema de las ramas no la he cubierto aún, pero por ahora imagina que son sesiones en las que el código puede tener estados diferentes donde la sesión principal o por defecto se llama “master”.

Con este comando realizado puedes ver en el repo Github el código fuente del proyecto.

Repo actualizado en GitHub

Fig7 Repo actualizado en GitHub

Clonando la app

Por último, si te encuentras en otra estación de trabajo y quieres hacerle algunos cambios a la app, no hay problemas, ejecuta este comando para obtener una copia exacta de la misma:

git clone http://github.com/mycyberacademy/webapp.git

Al terminar de trabajar, realiza un push, y todo listo, podrás ver los cambios desde la PC donde te encontrabas originalmente.

¿Y si en la PC original ya tengo el repo clonado? ¿Lo tengo que eliminar y realizar nuevamente la clonación?

No, el comando git pull <nombre_del_remote> <rama> une el repo remoto con el local.

Estoy detrás de un proxy ¿Qué hago?

Para conectarse a Github detrás de un proxy puedes configurar en el proyecto o de forma global la existencia de dicho proxy:

git config –global http.proxy http://proxy:puerto

De forma alternativa puedes especificar las credenciales para conectarte a dicho proxy

git config –global http.proxy http://user:password@proxy:puerto

Si utilizas CNTLM para que maneje las conexiones con el proxy, la opción 1 basta, pues este maneja la autenticación por ti.

Conclusiones

Con lo aprendido en esta entrada no tienes escusas para decir: “no puedo trabajar en el proyecto desde aquí, lo dejé en casa”. Desde cualquier lugar donde poseas Internet podrás verlo, modificarlo y actualizarlo.

Si observas la Fig4 te percatarás que existe una forma de clonar el repo mediante el protocolo SSH, esto te permitirá conectarte sin tener que escribir el usuario y la contraseña de Github, y lo veremos en el próximo episodio de “El increíble Git”.