Curso de git y github desde cero

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.

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":

Clonar repositorio GitHub

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
Clonar repositorio GitHub

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

repositorio clonado de Git

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.

hacer pull en Git

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.

commit desde GitHub

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:

GitHub pull

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

GitHub archivos

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.

GitHub log

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.

push origin rama GitHub

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:

visor de código de GitHub

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

editor de código de GitHub

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.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.