Saltearse al contenido

GitHub

Git, por sí solo, trabaja de manera local en nuestra computadora. Para sumar el aspecto colaborativo de la herramienta necesitamos sumar una plataforma en la nube.

Existen muchas plataformas web que trabajan con Git. La más popular es GitHub, que nos permite alojar código fuente de una cantidad ilimitada de proyectos (repositorios) de forma gratuita en la nube. Otras de las más usadas son GitLab y Bitbucket.

Además, GitHub también funciona como una red social y nos brinda acceso a repositorios públicos de forma ilimitada. Por ejemplo: https://github.com/python/cpython

A continuación, vamos a ver una introducción a GitHub y su funcionamiento.

Conceptos generales de GitHub

GitHub funciona como un respaldo de repositorios que puede ser accesible por todo un equipo de trabajo. Por lo tanto, se puede usar como un repositorio central.

La idea es replicar en la nube el mismo repositorio con el que se trabaja en local y mantenerlos sincronizados.


Recordemos el diagrama antes visto, que muestra cómo GitHub funciona como un servidor central.

Nuestro repositorio local debe almacenar la dirección (URL) del repositorio remoto en GitHub, para poder sincronizarse con él. Para el repositorio local, el repositorio en GitHub será un remote (repositorio remoto), usualmente llamado origin.

Para comenzar a trabajar con GitHub, siempre el primer paso es crear un repositorio nuevo (vacío) en la nube.

Luego, podemos, clonarlo (copiarlo) en nuestra PC y continuar trabajando, o, por otro lado, si ya tenemos un proyecto creado en local, y trackeado por Git, podemos configurar el nuevo repositorio en GitHub como su remote y subir todo su historial.

Una vez que el repositorio exista en la nube de GitHub todo nuestro equipo de trabajo podrá clonar una copia del repositorio y trabajar colaborativamente.

La sincronización con el repositorio remoto se hace directamente con comandos de Git.

Vamos a ver cómo crear un repositorio en GitHub y sincronizar un repositorio local, por ahora, con un solo colaborador (el dueño).

Crear una cuenta

El primer paso para utilizar GitHub es crear una nueva cuenta en donde podremos crear y alojar nuestros repositorios.

Visitamos la página oficial github.com. Aquí presionamos el botón Sign Up y seguimos los pasos para la creación, comenzando por el ingreso de nuestro email.

crear cuenta

Crear un nuevo repositorio

Vamos ver cómo crear un nuevo repositorio en GitHub y clonarlo a nuestra PC.

Una vez creada la cuenta llegaremos a la página principal de GitHub. El siguiente paso es crear nuestro primer repositorio.

Arriba a la derecha tenemos varios accesos directos para empezar a trabajar. El que nos interesa explorar es el signo +, donde vemos distintas opciones.

Para comenzar con nuestro proyecto elegimos New repository.

En esta página debemos completar un formulario. Veremos sus secciones una a una comenzando por el inicio.

En primer lugar, figura el propietario (Owner) del repositorio. En este caso aparecerá nuestra cuenta actual.

Luego de la barra debemos darle el nombre a nuestro repositorio. Este será el nombre del proyecto que deseamos alojar en GitHub.

Si bien la descripción es opcional, se recomienda utilizarla para dar los detalles más importantes del proyecto en el repositorio.

La siguiente sección nos solicita indicar si el repositorio será público (accesible sin permisos) o privado (sólo por invitación). Para este primer repositorio podemos crearlo privado para realizar pruebas.

El archivo README.md es una buena práctica para documentar nuestro proyecto. Podemos marcar la opción, pero también es posible crearlo manualmente en el futuro. En nuestro ejemplo no lo usaremos.

El archivo .gitignore es muy importante en la creación de nuestro proyecto. Al trabajar localmente, es posible que nuestro entorno de desarrollo o el mismo proyecto cree archivos al ejecutar el programa.

Estos archivos pueden ser un resultado de la compilación del código o información sensible para acceder a bases de datos u otras herramientas con autenticación.

Para evitar que estos archivos se trackeen y se suban a nuestro repositorio remoto, podemos añadirlos en .gitignore para que Git los ignore. Si nuestro proyecto contendrá código Python, podemos elegir la plantilla Python en la lista desplegable, como punto de partida.

Por otro lado, la licencia delinea lo que otras personas pueden hacer con nuestro código, para el nivel que estamos viendo actualmente no es necesario elegir una licencia.

Si deseamos obtener más información sobre las licencias, tenemos disponible el sitio https://choosealicense.com/ recomendado por GitHub para decidir la que nos conviene.

Una vez completado el formulario podemos finalizar presionando el botón Create repository. Esto ejecutará el git init, creará el archivo .gitignore, y ejecutará el commit inicial, todo en la nube.

Finalmente, al crear el repositorio, GitHub nos redirigirá a la página principal del mismo. Como podemos ver, se ha agregado el archivo .gitignore y se ha realizado el commit inicial automáticamente.

Trabajando en GitHub

GitHub nos permite trabajar sobre el repositorio directamente desde su interfaz web.

Podemos, por ejemplo, crear, modificar y eliminar archivos, entre otras cosas.

Crear un archivo

Por ejemplo, podemos crear un archivo README, como nos sugiere GitHub.

crear readme

Al hacer clic en el botón “Add a README”, vemos que GitHub nos proporciona un editor de texto plano para agregar el contenido del archivo.

Arriba, debemos incluir el nombre del archivo y su extensión.

Este editor reconoce la extensión del archivo y nos brinda un resaltado de sintaxis correspondiente con el lenguaje.

En nuestro caso, markdown.

crear readme

Para guardar en el repositorio los cambios realizados, debemos siempre realizar un commit.

crear readme

El “Commit message” es el mensaje que siempre incluimos en cada commit con la opción -m en la línea de comandos.

Además de este, GitHub nos permite agregar una explicación más detallada del commit abajo. Si el commit se conforma de varios cambios en distintos archivos, es aconsejable incluir una explicación de todos los cambios en la descripción extendida. De lo contrario, con el mensaje simple es suficiente.

Por otro lado, podemos ver que en la parte inferior de la ventana modal tenemos la opción de agregar el commit directamente en la branch main, o, crear una nueva branch para realizar el commit allí y luego iniciar un mecanismo, llamado Pull Request, para fusionar los cambios con la branch main.

Esto se debe a que usualmente en un ámbito de desarrollo, no se deberían hacer cambios sobre la branch main directamente. Sino que, los cambios se deberían realizar sobre otra branch, probar, y luego, si son correctos, recién fusionarlos con main.

Por ahora, solo vamos a realizar el cambio directamente sobre la branch main, ya que lo que queremos mostrar es la creación del archivo. Además, se trata de un archivo inocuo.

crear readme

Al volver a la página principal del repositorio, vemos que el archivo README.md ya está creado y GitHub muestra su contenido (renderizado) debajo de la lista de archivos por defecto.

Por esto es común tener una descripción del proyecto en el archivo README. También es usual incluir el modo de uso, requerimientos, forma de ejecutar o realizar un build del software, etc.

Si queremos crear otro archivo (distinto al README), debemos abrir el desplegable “Add file” y elegir la opción “Create new file”.

Observar que también tenemos la opción de subir un nuevo archivo desde nuestra computadora.

Igual que antes, se abrirá el editor de texto, con el cual crearemos, por ejemplo, un pequeño archivo .ini que tiene configuraciones de una aplicación.

Una vez creado, podemos verlo en el directorio principal.

Ahora, para demostrar cómo se hace, eliminaremos el archivo recién creado. Para esto, en primer lugar, debemos acceder al archivo haciendo clic sobre su nombre. Estando en el archivo, debemos hacer clic en el botón con los tres puntos, y seleccionar la opción “Delete file”.

Esto nos mostrará el editor vacío, indicando que el archivo se borró. Igual que antes, debemos realizar un commit para que los cambios tengan efecto en el repositorio.

Creando directorios

Finalmente, cabe aclarar que, ya que no es posible añadir un directorio vacío a un repositorio de Git, solo vamos a poder agregar un directorio nuevo si, a la vez, creamos un nuevo archivo en ese directorio.

Para hacer esto desde GitHub, al crear un nuevo archivo, en lugar de escribir su nombre, debemos escribir el nombre del nuevo directorio, seguido de una barra / y finalmente el nombre del archivo.

Clonando un repositorio a nuestra PC

Si bien GitHub permite subir y editar archivos en la misma página web, es mucho más cómodo trabajar en nuestra PC, con nuestro editor de código. Para eso debemos clonar el repositorio en nuestra PC.

Al presionar el botón ”<> Code” veremos distintas opciones para descargar o clonar el repositorio.

La forma clásica (seleccionada por defecto) es mediante el método HTTPS a través de la línea de comandos. Simplemente debemos copiar la URL del repositorio y ejecutar el comando git clone <URL> con Git Bash en nuestra PC.

Una vez copiada la URL debemos abrir Git Bash en el directorio en donde queremos que se copie la carpeta del repositorio. En el siguiente ejemplo creamos un directorio llamado GitHub, y adentro abrimos Git Bash.

El comando quedará:

Terminal window
1
git clone https://github.com/juan-academia/prueba.git

Para poder clonar el repositorio, Git crea la carpeta que lo contendrá e intentará conectarse con GitHub.

GitHub, a su vez, nos pedirá autorización si es la primera vez que intentamos conectarnos con la plataforma (ya que estamos intentando acceder a un repositorio privado) y nos permitirá autenticarnos mediante el navegador.

Una vez autenticado en GitHub, Git descargará el contenido del repositorio dentro de un directorio del mismo nombre que el repositorio y configurará al repositorio remoto como origin.

Desde el repositorio local podremos ejecutar todos los comandos que vimos anteriormente.

git status nos mostrará que estamos sincronizados con origin/main, el repositorio remoto.

Si ejecutamos git remote -v, Git nos mostrará una lista de los repositorios remotos que tenemos configurados. Estos se habrán creado al momento de hacer el clone.

Trabajando con un repositorio local y remoto

Una vez que tenemos una copia del repositorio en nuestra PC, podemos comenzar a trabajar en nuestro proyecto.

Por lo tanto, debemos seguir el flujo antes mostrado, para realizar cambios, y subirlos al repositorio remoto.

Una vez realizado un cambio, y un commit, debemos usar el comando git push para subir ese commit al repositorio remoto.

Por ahora venimos trabajando solo con la branch main, en el repositorio remoto origin, por lo tanto, el comando será:

Terminal window
1
git push origin main

Por otro lado, si hay cambios en el repositorio remoto, por ejemplo, si se realizan cambios desde la interfaz web, y queremos descargar estos cambios, debemos ejecutar el comando git pull.

Este comando descargará los cambios del repositorio remoto, en la branch indicada, y fusionará los cambios con nuestra branch local.

Por ejemplo, si continuamos en nuestra branch main local, el comando sería:

Terminal window
1
git pull origin main

GitHub Desktop

GitHub Desktop es una aplicación de escritorio, específicamente creada para administrar repositorios de GitHub.

Permite clonar repositorios en los que seamos los dueños o estemos agregados como colaboradores, como así también repositorios públicos.

También nos permite, realizar commits, subir y bajar cambios de repositorios remotos, e inclusive abrir Pull Requests.

En este curso veremos el uso de Git con Visual Studio Code como aplicación con interfaz gráfica. Esto nos permitirá en el futuro usarla para cualquier plataforma de Control de Versiones en la nube, como GitLab y Bitbucket, y no solo GitHub. Por lo tanto, no entraremos en más detalles de esta aplicación.

¿Cuál de las siguientes afirmaciones es verdadera?