24 Github
El valor del control de versiones se hace evidente al comenzar a colaborar con otros. Contamos con la mayor parte de las herramientas necesarias para ello; lo único que resta es transferir cambios de un repositorio a otro.
Sistemas como Git posibilitan el traslado de trabajo entre cualquier par de repositorios. No obstante, en la práctica, resulta más conveniente utilizar una copia como punto central y mantenerla en la web en lugar de en la computadora portátil de alguien.
Vamos a comenzar por crear un repositorio remoto, pero para eso necesitamos configurar nuestra cuenta de Github también.
24.1 Paso 1: Crear un repositorio remoto
Lo primero que vamos a hacer es crear un repositorio remoto. Entra a tu cuenta de Github y dale click en Nuevo.
Ponle de nombre Mi_primer_repo (o el nombre que hayas usado en las secciones anteriores). Deja marcada la opción de público y no añadas un README ni una licencia.
Al darle click en crear repositorio, la página nos mostrará la siguiente información que es la que usaremos para configurar nuestro local con el remoto.
Lo que acabamos de hacer es como si en nuestra terminal hubiéramos realizado lo siguiente:
mkdir Mi_primer_repo
cd Mi_primer_repo
git init24.2 Paso 2: Conectar local a remoto
La página principal del repositorio remoto muestra una serie de información que necesitamos usar para conectar el repositorio remoto en Github con el repositorio local de nuestra computadora. Vamos a usar el protocolo de conexión SSH, da click en donde dice SSH y a continuación en el icono de copiar.
Ahora, dentro de nuestra carpeta del repositorio local, abrir una terminal y correr lo siguiente:
git remote add origin git@github.com:User/Mi_primer_repo.gitPara revisar que si se haya realizado correctamente procedemos a usar lo siguiente:
git remote -v24.3 Paso 3: Conexión mediante SSH
Primero verificamos si ya tenemos algún par de llaves:
ls -al ~/.sshSi ya tienen algún par de llaves configuradas las van a ver listadas, si no tiene ninguna les saldrá una leyenda como la siguiente:
ls: cannot access '/c/Users/User/.ssh': No such file or directory
24.3.1 Paso 3.1: Crear un par de llaves SSH
Para crear el par de llaves usamos el siguiente comando, la opción -t se refiere al tipo de algoritmo usado y la opción -C indica un comentario para la llave, en este caso el comentario es nuestro correo.
ssh-keygen -t ed25519 -C "email@dominio.com"Si tu sistema operativo no lo permite, usa ssh-keygen -t rsa -b 4096 -C "your_email@example.com".
Nota: Si no cuentas con ssh-keygen instalado, primero corre el código:
sudo apt-get install ssh-keygenComo queremos usar el archivo default, solo damos Enter. Ahora nos pedirá una contraseña, tecleala, no vas a ver nada en la pantalla. Una vez creada verás en pantalla algo como lo siguiente:
Your identification has been saved in /c/Users/user/.ssh/id_ed25519
Your public key has been saved in /c/Users/user/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:SMSPIStNyA10KPxuYu94KpZg9AYjgt9g46A4kFy3g1o user@domain
The keys randomart image is:
+--[ED25519 256]--+
|^B== o. |
|%*= *.+ |
|+=.E =.+ |
| .=.+.o.. |
|... . S |
|.+ o |
|+ = |
|.o.o |
|oo+. |
+----[SHA256]-----+Lo que dice identification ser refiere a la llave privada la cual no debes compartir nunca y la cadena de caracteres que dice fingerprint se refiere a parte de tu llave pública.
Si repetimos el comando siguiente, verán ahora ya sus dos claves pública y privada.
ls -al ~/.ssh24.3.2 Paso 3.2 Generar una llave pública exclusiva para Github (opcional)
En caso de que ya cuentes con una llave con ese nombre, puedes crear una nueva llave con otro nombre especifico para Github:
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_githubAhora que ya tenemos las claves, debemos decirle a GitHub cuales son.
cat ~/.ssh/id_ed25519.pubCopia la cadena de caracteres, ve a la configuración de tu perfil de GitHub y da clic en “SSH and GPG Keys”.
Una vez ahí da clic en “Nueva llave SSH”.
Después coloca un título que te permita identificar que será la clave con la que usarás la computadora y pega tu llave pública.
Ahora solo falta revisar la conexión desde la terminal.
ssh -T git@github.comSi vez un mensaje similar al siguiente, significa que quedo completa la autenticación.
Hi Name! Youve successfully authenticated, but GitHub does not provide shell access.24.3.3 Paso 3.3 Solución a Error con la llave
A mi paso que la llave esta bien pero no tenia acceso a usar github, mostrando este mensaje:
ssh -i .ssh/id_ed25519 -T git@github.com
Hi HaydeePeruyero! You've successfully authenticated, but GitHub does not provide shell access.
Agregar configuración
Por lo que decidí configurar el archivo ~/.ssh/config.
nano ~/.ssh/configagrega esto:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yesGuarda y cierra las modificaciones del archivo.
Verifica que los permisos estén correctos
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
chmod 600 ~/.ssh/configAgrega tu clave al ssh-agent
Esto asegura que la clave esté disponible durante tus sesiones:
ssh-add ~/.ssh/id_ed25519Prueba conexión otra vez
ssh -T git@github.comDebe decir:
Hi HaydeePeruyero! You've successfully authenticated, but GitHub does not provide shell access.24.4 Paso 4: Push and pull
Una vez que ya tenemos configurado todo, solo falta enviar todo lo que tenemos en el repo local al remoto. Si se establecio la contraseña nos la va a pedir en la terminal o una ventana aparte.
git push origin mainEn esa instrucción, origin se refiere al repositorio remoto y main al local (las ramas que estamos intentando poner en el mismo contenido).
La situación en la que estamos es la siguiente:
Para actualizar nuestro repositorio local, lo que debemos hacer es lo siguiente:
git pull origin mainComo no hemos realizado ningún cambio en el remoto, no veremos nada nuevo en el local. En el remoto también podemos añadir archivos directamente.
Añade un archivo nuevo desde el repositorio remoto y actualiza tus cambios en el local.







