Skip to content

0.3 Github

Existen muchos proveedores de alojamiento para repositorios Git pero los más usados son GitHub y GitLab.

¿Qué es GitHub?

06_github

GitHub es el proveedor de alojamiento en la nube para repositorios gestionados con git más usado y el que actualmente tiene alojados más proyectos de desarrollo de software de código abierto en el mundo.

La principal ventaja de GitHub es que permite albergar un número ilimitado de repositorios tanto públicos como privados, y que además ofrece servicios de registro de errores, solicitud de nuevas funcionalidades, gestión de tareas, wikis o publicación de páginas web, para cada proyecto, incluso con el plan básico que es gratuito.

1. Configuración con clave publica-privada

Seguir el manual de github, que resumimos en estos puntos:

1.1. Generar la clave (Linux)

ssh-keygen -t ed25519 -C "your_email@java.com"

o:

ssh-keygen -t rsa -b 4096 -C "your_email@java.com"

Después introducir la ubicación del archivo (o dejarlo por defecto) y introducir la passphrase.

1.2. Añadir la clave a nuestra cuenta github

Siguiendo los pasos de la documentación.

Configurar nuestro equipo linux

Algunas redes bloquean el acceso al puerto 22 (como por ejemplo la red del instituto), por ello github tiene habilitada la posibilidad de acceder a ssh a través del puerto 443 (típicamente https). Para configurar nuestro equipo y acceder a github mediante ssh con nuestro usuario y nuestra clave debemos configurar el archivo ~/.ssh/config con el siguiente contenido:

1
2
3
4
5
Host github.com
Hostname ssh.github.com
Port 443
User arturobc
IdentityFile ~/.ssh/pubuntu_github_ssh_key

2. Añadir un repositorio remoto (git remote add)

git remote add <repositorio-remoto> <url> crea un enlace con el nombre <repositorio-remoto> a un repositorio remoto ubicado en la dirección <url>.

Cuando se añade un repositorio remoto a un repositorio, Git seguirá también los cambios del repositorio remoto de manera que se pueden descargar los cambios del repositorio remoto al local y se pueden subir los cambios del repositorio local al remoto.

3. Lista de repositorios remotos (git remote)

git remote muestra un listado con todos los enlaces a repositorios remotos de nidos en un repositorio local. git remote -v muestra además las direcciones url para cada repositorio remoto.

4. Descargar cambios desde un repositorio remoto (git pull)

git pull <remoto> <rama> descarga los cambios de la rama <rama> del repositorio remoto <remoto> y los integra en la última versión del repositorio local, es decir, en el HEAD.

git fetch <remoto> descarga los cambios del repositorio remoto <remoto> pero no los integra en la última versión del repositorio local.

5. Subir cambios a un repositorio remoto (git push)

git push <remoto> <rama> sube al repositorio remoto <remoto> los cambios de la rama <rama> en el repositorio local.

6. Colaboración en repositorios remotos de GitHub

Existen dos formas de colaborar en un repositorio alojado en GitHub:

  • Ser colaborador del repositorio:
  • Recibir autorización de colaborador por parte de la persona propietaria del proyecto.
  • Clonar el repositorio en local.
  • Hacer cambios en el repositorio local.
  • Subir los cambios al repositorio remoto. Primero hacer git pull para integrar los cambios remotos en el repositorio local y luego git push para subir los cambios del repositorio local al remoto.
  • Replicar el repositorio y solicitar integración de cambios:
  • Replicar el repositorio remoto en nuestra cuenta de GitHub mediante un fork.
  • Hacer cambios en nuestro repositorio remoto.
  • Solicitar a la persona propietaria del repositorio original que integre nuestros cambios en su repositorio mediante un pull request.

7. GitHub Desktop

GitHub Desktop es una aplicación gratuita de código abierto que ayuda a trabajar con código hospedado en GitHub u otros servicios de hospedaje de Git. Con GitHub Desktop, puedes realizar comandos de Git, como confirmar e insertar cambios, en una interfaz gráfica de usuario, en lugar de mediante la línea de comandos.

Más información en Acerca de GitHub de escritorio.

github desktop

7.1. Instalación GitHub Desktop

Descarga de la página oficial de GitHub Desktop.

Descarga el instalable en función del sistema operativo en el que estés.

github desktop

7.2. Inicio de sesión

Después de la instalación puedes iniciar sesión con tu cuenta de GitHub. Para ello, primero se te redirigirá a la página web oficial de GitHub, donde podrás introducir tus datos de acceso.

Seguidamente, tienes que autorizar GitHub Desktop para que la aplicación acceda mediante tu cuenta y a tus repositorios. Para ello, haz clic en el botón “Authorize desktop”.

Una vez se te haya redirigido a GitHub Desktop, puedes completar el proceso de inicio de sesión introduciendo un nombre de cuenta y una dirección de correo electrónico o transfiriendo los datos correspondientes desde tu cuenta de GitHub. Al hacer clic en el botón “Finish”, accederás a la interfaz de usuario de GitHub Desktop.

Ahora podemos clonar nuestro repositorio de GitHub en uno local:

github desktop
github desktop

Elegimos, de nuestro repositorios remotos en GitHub, el que queremos clonar; y pulsamos "Clone":

github desktop

Cuando esté clonado nuestro repositorio (punto 1) podremos observar si existen modificaciones a subir a nuestro repositorio remoto (punto 2). Si es así, ponemos un nombre a nuestro commit (punto 3) y pulsamos "Commit to master" (punto 4). En este momento tenemos el commit realizado en nuestro repositorio local; listo para actualizar al repositorio remoto en GitHub.

github desktop

Para subir este(os) commits a remoto, pulsaremos el botón "Publish branch", y el cambio estará listo en el repositorio de GitHub:

github desktop