
Trabajo en equipo con GitHub
Capítulo 15: Trabajo colaborativo con GitHub - Clonar y subir repositorios
En este capítulo te voy a clonar un repositorio de GitHub para poder iniciar tu repositorio local e ir enviando los cambios a GitHub.
He creado un nuevo repositorio en GitHub.

Este repositorio no tiene nada más que un commit y el README.md.
¿Cómo se clona un repositorio de GitHub?
Para clonar (descargar) un repositorio de GitHub en tu equipo, necesitas copiar la URL del mismo. Lo puedes hacer desde la barra de URL del navegador o pulsar sobre el botón verde "Code":

Abre Git Bash en la ruta en la que quieras que se añada la carpeta del repositorio. Escribe el siguiente comando:
git clone https://github.com/programacion-facil/repositorio_python.git

Comprobemos si hay un repositorio de Git clonado en mi equipo.

Una vez clonado, puedo ir trabajando sobre él.
¿Qué ocurre si hay más de una persona trabajando en un mismo proyecto de GitHub?
GitHub está más pensado para trabajar en equipo que en solitario. Entonces, es normal que haya más de una persona trabajando a la vez en el mismo repositorio.
Aquí llega el dilema de si yo elimino un archivo 'x' y otra persona está trabajando con ese archivo, ¿Qué ocurrirá? ¿Se eliminará? ¿Ignorará que lo he eliminado y dejará el archivo con los cambios de la otra persona?
Este dilema, deja de serlo con Git, ya que para poder subir cualquier pequeño cambio al repositorio de GitHub, tendremos que realizar una sincronización del estado actual del repositorio.
Esto se hace con el comando git pull, una combinación del comando git fetch y git merge.
El comando git fetch
El comando git fetch
lo que hace es actualizar todas las referencias de una rama remota en el repositorio local.
El comando git merge
El comando git merge
lo que hace es fusionar la referencia de rama remota correspondiente a la rama actual.
No hace falta de momento que entiendas estos dos comandos. Vamos a utilizar git pull
para realizar estas dos acciones, lo que se resume en que se nos sincronizarán los cambios entre el repositorio de GitHub y el local.
Probémoslo sin realizar ningún cambio desde la clonación, a ver que pasa. Tienes que estar con el repositorio local activo en Git Bash como en la imagen:
El resultado es que me da un mensaje de "Already up to date.", que significa en español que está actualizado. Es decir, tenemos el repositorio igual que como está en GitHub.

Ahora, supongamos que alguien sube un archivo al repositorio y hace un commit en GitHub.
¿Cómo se pueden crear o importar archivos en GitHub?
Ya que voy a crear un archivo desde GitHub, aprovecho para enseñarte como se hace.
Haz click en el botón "Add file" del repositorio.
Si quieres crear un archivo haz click en "Create new file"../
En cambio, si lo que deseas es importar archivos ya creados, lo puedes hacer con el botón "Upload files".
Al crear un archivo, le daremos un nombre y escribimos lo que queramos.
Para hacer el commit de este nuevo archivo, vamos a la parte inferior de la misma página y pulsamos el botón verde "Commit new file".
Aquí escribimos el mensaje corto del commit y opcionalmente, podemos extendernos más en el área de texto más grande.

Estoy escribiendo este archivo en la rama main. Si dejo marcada la opción "Commit directly to the main branch", hará el commit en esta rama, en cambio, si queremos que se cree en otra rama, lo podemos indicar seleccionando la opción "Create a new branch for this commit and start a pull request."
Ahora, en tu repositorio local, prueba el git pull:

Se acaban de descargar todos los cambios. En la carpeta aparece el nuevo archivo:

No solo se ha descargado el archivo, si no que todo el contenido de la carpeta .git con sus commits. Lo podemos ver con un git log:
git log
Aquí puedes ver localmente el commit que he hecho antes en GitHub.

Ahora, voy a crear un archivo en el repositorio local. Además, haré el commit en una nueva rama que no existe en el repositorio de GitHub.
Creo la rama nueva, me muevo a ella, y hago el commit.
git checkout -b cobol
git add --all
git commit -m "Se ha añadido el archivo que calcula sumas en COBOL."
Ahora, para subir esta nueva rama con sus archivos, solo tienes que tener el repositorio actualizado como te acabo de enseñar e introducir el siguiente comando:
git push origin cobol
Donde cobol, va el nombre de la rama.

Por cierto, si quieres subir todas las ramas, solo quita el nombre de la rama y utiliza la opción --all
:
git push origin --all
¿Cómo podemos editar archivos ya subidos en GitHub?
Esto como un pequeño extra. Para editar un archivo directamente desde GitHub, solo tienes que hacer un click sobre él y te abrirá el visor de código. Para acceder al editor, haz click en el icono del lápiz señalado en la imagen:

Realiza los cambios que quieras y haces el commit de la misma forma que cuando he creado el archivo de Python.

Comentarios
Si te quedan dudas sobre el temario, sobre html, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.