Introducción a Git

1

¿Por qué usar un sistema de control de versiones como Git?

2

¿Qué es Git?

3

Instalando GitBash en Windows

4

Instalando Git en OSX

5

Instalando Git en Linux

6

Editores de código, archivos binarios y de texto plano

7

Introducción a la terminal y línea de comandos

Comandos básicos en Git

8

Crea un repositorio de Git y haz tu primer commit

9

Analizar cambios en los archivos de tu proyecto con Git

10

¿Qué es el staging?

11

¿Qué es branch (rama) y cómo funciona un Merge en Git?

12

Volver en el tiempo en nuestro repositorio utilizando reset y checkout

13

Git reset vs. Git rm

Flujo de trabajo básico en Git

14

Flujo de trabajo básico con un repositorio remoto

15

Introducción a las ramas o branches de Git

16

Fusión de ramas con Git merge

17

Resolución de conflictos al hacer un merge

Trabajando con repositorios remotos en GitHub

18

Cómo funcionan las llaves públicas y privadas

19

Configura tus llaves SSH en local

20

Uso de GitHub

21

Cambios en GitHub: de master a main

22

Tu primer push

23

Git tag y versiones en Github

24

Manejo de ramas en GitHub

25

Configurar múltiples colaboradores en un repositorio de GitHub

Flujos de trabajo profesionales

26

Flujo de trabajo profesional: Haciendo merge de ramas de desarrollo a master

27

Flujo de trabajo profesional con Pull requests

28

Utilizando Pull Requests en GitHub

29

Creando un Fork, contribuyendo a un repositorio

30

Haciendo deployment a un servidor

31

Hazme un pull request

32

Ignorar archivos en el repositorio con .gitignore

33

Readme.md es una excelente práctica

34

Tu sitio web público con GitHub Pages

Multiples entornos de trabajo en Git

35

Git Rebase: reorganizando el trabajo realizado

36

Cómo usar Git Stash: guarda cambios temporalmente

37

Git Clean: limpiar tu proyecto de archivos no deseados

38

Git cherry-pick: traer commits antiguos al head del branch

Comandos de Git para casos de emergencia

39

Git Reset y Reflog: úsese en caso de emergencia

40

Reconstruir commits en Git con amend

41

Buscar en archivos y commits de Git con Grep y log

Bonus sobre Git y Github

42

Comandos y recursos colaborativos en Git y GitHub

43

Tu futuro con Git y GitHub

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
2 Hrs
1 Min
18 Seg

Tu primer push

22/43
Recursos

La creación de las SSH es necesario solo una vez por cada computadora. Aquí conocerás cómo conectar a GitHub usando SSH.

Luego de crear nuestras llaves SSH podemos entregarle la llave pública a GitHub para comunicarnos de forma segura y sin necesidad de escribir nuestro usuario y contraseña todo el tiempo.

Para esto debes entrar a la Configuración de Llaves SSH en GitHub, crear una nueva llave con el nombre que le quieras dar y el contenido de la llave pública de tu computadora.

Ahora podemos actualizar la URL que guardamos en nuestro repositorio remoto, solo que, en vez de guardar la URL con HTTPS, vamos a usar la URL con SSH:

ssh
git remote set-url origin url-ssh-del-repositorio-en-github

Comandos para copiar la llave SSH:

-Mac:

pbcopy < ~/.ssh/id_rsa.pub
  • Windows (Git Bash):
clip < ~/.ssh/id_rsa.pub
  • Linux (Ubuntu):
cat ~/.ssh/id_rsa.pub

Descubre cómo funcionan los Git Tags.

Aporte de: Juan Luis Rojas

Aportes 723

Preguntas 368

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Seguimos avanzando! 😃

Me ayudo este post Configurar llaves SSH en Git y GitHub

Saludos!

Nose a quien le pueda servir pero cunado yo intente cambiar mi url de repositorio remoto no me dejo con el comando “git remote set-url origin” entonces investigue y encontré este “git config remote.origin.url + la url SSH” y si funciono perfecto
Espero que les sea de ayuda ❤️

Acá les dejo mis anotaciones:

Comandos para copiar la llave SSH:
Mac:

  • pbcopy < ~/.ssh/id_rsa.pub

Windows (Git Bash):

  • clip < ~/.ssh/id_rsa.pub

Linux (Ubuntu):

  • cat ~/.ssh/id_rsa.pub

si se va cargar de git al github, recuerden que master cambio por main

<
debes de poner: 

git push origin master

se debe poner:

git push origin master:main

> 

En Windows: si, al hacer git pull obtiene este warning: Warning: Permanently added the RSA host key for IP address ‘xxx.xx.xx.x’ to the list of known hosts. La solución es crear un archivo config en ~/.ssh/ y colocan esta línea: UserKnownHostsFile ~/.ssh/known_hosts

Urge actualización de este curso!

  1. Estar en la carpeta home de tu sistema. c/Users/Oscar Palomino
  2. Teclear el comando ssh-keygen -t rsa -b 4096 -C "[email protected]"
    OJO! el correo que configures acá tiene que ser el mismo que el de Github.
  3. Muestra lo siguiente.
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/Oscar Palomino/.ssh/id_rsa):
    Created directory ‘/c/Users/Oscar Palomino/.ssh’.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /c/Users/Oscar Palomino/.ssh/id_rsa.
    Your public key has been saved in /c/Users/Oscar Palomino/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:TcKLjZGos8LAOuBV0WQclpxwT9+uKP9AvsF7cQPiASo [email protected]
    The key’s randomart image is:
    ±–[RSA 4096]----+
    | o**+. |
    | .=Xo . . |
    | …+ +… . |
    |. E… = B … |
    |o.o… o S.+ … |
    |* .o +…o |
    |+o. . * .o . |
    | o o =. |
    | +o. |
    ±—[SHA256]-----+
  4. El passphrase es una contraseña encima de la llave SSH.
    id_rsa es la llave privada, con esta llave pueden hackear tu cuenta de github, NUNCA la enseñes.
    id_rsa.pub es la llave pública, puedes enseñarla.
  5. Evalúa que el proceso SSH esté corriendo con el siguiente comando:
    eval $(ssh-agent -s)
    Si muestra Agent pid “número aleatorio” significa que todo está bien.
  6. Teclea el siguiente comando:
    ssh-add ~/.ssh/id_rsa
    Esto añadirá la llave, te pedirá la contraseña si la pusiste.
    Mostrará lo siguiente:
    Enter passphrase for /c/Users/Oscar Palomino/.ssh/id_rsa:
    Identity added: /c/Users/Oscar Palomino/.ssh/id_rsa ([email protected])
    Y listo, has creado una llave pública y privada.

CONEXIÓN A GITHUB CON SSH.

  1. Copia tu llave pública y en tu perfil de Github ve a settings.
  2. Ve a SSH and GPG keys.
  3. Clic a New SSH key.
  4. Le das un nombre en Title.
  5. Pegas el contenido de la llave en el recuadro Key.
  6. Guardas.
  7. Ubicado en el repositorio que quieres trabajar, le das clic a Clone Repository y luego a USE SSH. Copias el contenido del recuadro y vas al entorno local (simbolo del sistema).
  8. vas a la carpeta del repositorio local.
  9. Tecleas git remote -v, verás el origin y la URL de este; el paso a seguir es cambiar la URL.
  10. Usa de nuevo git remote -v, si ves que la URL cambió, lo hiciste perfectamente.
  11. Trae el repositorio completo con GIT pull. Aparecerá una advertencia.
    The authenticity of host ‘github.com (192.30.253.113)’ can’t be established.
    RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
    Are you sure you want to continue connecting (yes/no/[fingerprint])?
    teclean yes.
  12. Teclean git pull origin master, esto con el fin de fusionar el proyecto en github con el master local.
  13. Usar git status.
  14. Hacen un Commit.
  15. Usan git pull origin master.
  16. Luego git push origin master.
  17. Revisan que los cambios se hayan realizado y listo! Configurada la llave SSH en Github. Y ya no pedirá más la contraseña.

Esta clase dura 8 minutos pero estuve mas de una hora practicandole y haciendole para que me salga 😃 estoy contenta porque ya aprendi como hacer cambios y subirlos a mi Git hub

Hola, amigos.
Si al momento en que ponen:

git push -u origin main

Les va a pedir su username y password, les sale un error, lo que tienen que hacer es generar un TOKEN, y en ves de poner su password, poner ese token que generaron.

Para generar el token, van a los ajustes de
GitHub / configuracion de desarrollador/ ficha de acceso personal / Yo use el clasico / Generar token

y el codigo que les de el token, lo copean en el password de la terminal y listo:)

Les comparto la documentacion de Github donde tambien se explican estos pasos, asi de que en caso de que algo cambie, creo que esto se mantendria actualizado.

https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account

me encanta que freddy haga voces. mi vida es perfecta conecte Git con Github y ya esta corriendo SSH

Al minuto 6:05 donde hacemos el

$ git pull origin master

2 veces seguidas tuve que esperar unos cuantos segundos más de lo normal y me aparecieron estos errores:

ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Si a alguien más le sucede le comento que la solución en mi caso fue solo esperar un par de minutos y volver a intentar. Espero que no se repita porque puede ser tedioso, pero al menos nada critico.

Hay que practicar mucho!, esta bien que freddy es muy claro en su explicación pero esto no es solo de dar play.

🐱‍💻 Usar GitHub con SSH nos permite conectarnos sin suministrar nuestro nombre de usuario ni contraseña en cada visita y clonar de forma segura.

$ git pull origin master
Enter passphrase for key ‘.ssh/id_rsa’:

A la clave ssh se me ocurrio ponerle una clave y me la pide cada vez que quiero traer algo de Github, busque un poco y no he sido el unico jaja, asi que aprendi algo mas…

$ssh-keygen -p
confirmar
clave vieja
clave nueva(ninguna obviamente)
confirmar

Hola, cuando hacemos el merge con la rama main

$ git pull origin main --allow-unrelated-histories

En el video Freddy dice “si por favor”, no podía avanzar

Haciendo esto pude

press i (i for insert)
write your merge message
press esc (escape)
write :wq (write & quit)
then press enter

Por Favor, consideren volver a las oficinas o invertir en un estudio de grabación de mayor calidad para los profesores. Esta actualización del curso no se ajusta al nivel profesional que tenía el curso original. Siento como si estuviera viendo un video de YouTube, pero pagué por videos de alta calidad. Además, la grabación desde abajo hacia arriba y la iluminación son decepcionantes

Me parece que se necesita actualizar este curso para un mejor aprendizaje. Lo estoy viendo en 2024 y hay muchas cosas des actualizadas pero que gracias a las nuevas tecnologías he podido ir solucionando los problemas. En la parte del pull origin me estaba saliendo un error, lo pude solucionar con los siguientes comandos para hacer el pull de forma correcta en MAC: git pull origin main. git config pull.rebase false git pull origin main --allow-unrelated-histories. De esta forma pude realizar el pull de forma correcta y tener el archivo remoto en mi repositorio local.

¿no es mejor que vuelvan a subir actualizado todo este curso? que frustracion tener 3 dias tratando de entender, porque aparte que los cortes que hicieron me parecen demasiado forzado, es demasiado frustrando para un ignorante del tema como yo, tener que adivinar si trabajar con Main o Master

Solo como observación.

El siguiente comando, te modifica las url’s, para tu proyecto:
git remote set-url origin url-ssh-del-repositorio-en-github

Es decir, si al darle el comando
git remote -v

No regresa un listado, tienes que hacer con:
git remote add origin URL-de-Github

Para aquellos que les da el siguiente error, logre la solución de buscar durante horas, lo pueden solucionar ejecutando
git config --global pull.ff true:

El comando “git config --global pull.ff true” establece una configuración global en Git para “fast-forward merges” o fusiones de avance rápido durante las actualizaciones de un repositorio local a partir de un repositorio remoto.

“Fast-forward” (avance rápido) es un tipo de fusión que ocurre cuando Git puede fusionar ramas de forma automática y sin generar conflictos, y se utiliza para actualizar la rama local con la última versión de la rama remota. Con la configuración “pull.ff true”, se le indica a Git que siempre intente hacer fusiones de avance rápido durante las actualizaciones (según chatgpt)

The problem

hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint: git config pull.rebase false # merge
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint:
hint: You can replace “git config” with “git config --global” to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.

Si con el cambio de master a main les sale este error al tratar de hacer un pull o no les permite hacer push

fatal: refusing to merge unrelated histories

pueden usar este comando

git push origin main --force

Esto probablemente borre su archivo “Readme” de Github pero es fácil volver a crearlo, y ya después hacen un pull con normalidad c:

Para los que establecieron un “passphrase” les pedirá adicional que la ingresen, solo introducen su passphrase y listo del resto funciona perfecto!

Solo una pequeña correccion, el comando “git pull origin master” (y push) especifica con la palabra “origin” que apuntamos al repositorio remoto, y con master le indicamos la rama de donde vamos a hacer el pull o hacia donde haremos el push (en este caso master, que es una rama mas).

Es decir, si tenemos varias ramas en el repositorio remoto, y queremos hacer pull o push de o hacia esa rama remota, vasta con “git pull origin EL_NOMBRE_DE_LA_RAMA_QUE_QUIERAS”

En local, la rama desde donde se hara la operacion, sera la actual, es decir, la ultima a la que hayamos hecho checkout!

Una pregunta amigos…
Si tengo dos particiones, una con Ubuntu y otra con linux; ¿Debo configurar mis llaves SSH para los dos sistemas operativos?

Quizá sea tonta la pregunta disculpen mis novatadas 😅

Diferencias entre utilizar HTTP y SSH
Documentación de GIT Protocolos

Compañeros que están viendo el curso en 2024, estuve casi 2 horas entre viendo comentarios en la clase e investigando en internet en la parte del push después de que nos mencionan de cambiar la rama Master a Main y me daba error porque me pedía el usuario de GitHub y contraseña, esta última ya no se podía ya que algo cambió en GitHub (GH) en 2021, pidiendo en su lugar un token. Entonces, si estabas realizando en conjunto con freddy las cosas que hace en la clase, entenderás que Freddy copió la dirección HTTPS del repositorio remoto en GH, pero lo que necesitamos es la dirección SSH. Entonces, con la dirección del proyecto en la terminal haremos lo siguiente: 1. git remote remove origin (Para remover la dirección HTTPS que hicimos en conjunto con freddy). 2. git remote add origin "Dirección SSH de la repo remota en GH" (Sin comillas, para vincular correctamente la dirección SSH de la repo remota con la local). 3. git pull origin main (Para traer el archivo readme de la repo remota a la local y así no generar conflictos con un push). 4. git push origin main (Para mandar el fabuloso hyperblog a la repo remota). Y listo, ya hicimos nuestro primer Push sin morir en el intento.

Para que no batallen con el editor y la consola en la pantalla, les recomiendo usar la terminal que VSCode trae integrada (View -> Terminal)

Para que sea más rápido el proceso de copia de la llave pública pueden utilizar el siguiente comando y como último paso pegarla en el repositorio.

clip < ~/.ssh/id_rsa.pub

ohh por Dios ya me estaba dando algo muchos errores me toco devolverme como tres clases me di cuenta que había corregido los errores en visual code uhh lo logre de los errores se aprende

Podrían por favor al menos actualizar este curso. Es tremendamente confuso intentar avanzar con este material. Este es mi segundo día intentando arreglar este problema. Estoy con ChatGPT, videos en YouTube y usando cualquier IA que me pueda ayudar y sigo con problemas. POR FAVOR ACTUALICEN EL CURSO

Para los que se le olvidaron, se guarda con Esc+Shift+z+z

Super desactualizado el curso, una lastima!. Sin embargo comparto este link a youtube para poder continuar con el proceso en este punto. Espero aporte an algo. Platzi, favor actualizar. <https://www.youtube.com/watch?v=bvi37IbJXS4>

si a alguien le sale el siguiente error

<pusherror: failed to push some refs to> 

la solucion es :

<git push origin master:main> 

como me puedo mover mover a una carpeta por medio de la terminal pero el nombre de la carpeta tiene un espacio, ejemplo se llama proyectos pagados?

Estoy trabajando con Ubuntu habilitado para windows.

Tuve muchas dificultades para lograr la conexión entre el repositorio local de git y el repositorio web en GitHub.

Estos son los comandos que, al parecer, me fueron de utilidad finalmente:

git remote set-url origin git@github.com:mi_usuario/mi_repositorioGitHub.git
git remote -v
git push origin main
git pull origin main
git pull origin main --allow-unrelated-histories

Los últimos tres comandos están explicados en la clase, otra vez, a partir del minuto 12 con 20 s

Espero que sea de utilidad, para alguien.

vaya sorpresa, casi un mes con este curso, he tenido que investigar para porder actualizar algunos procedimientos que Freddy menciona, estaba que abandonaba , muchas gracias por las actualizaciones !!!

Muy interesante , conexión establecida.

En el caso de que quieran hacer una Conexión por SSH sin tener que hacerlo por HTTPS primero, solo deben escribir:

_git remote add origin (URL SSH) _

No olviden agregar tu clave privada a la PC y tu clave publica a tu perfil de GitHub*.

Después de ver el video me dispuse a replicar todo lo que había hecho Freddy y nada me salió igual, me toco volver a generar mis llaves y realiza la conexión a GitHub otra vez.
Lo que aprendí fue: “La practica hace al maestro”

hola a todos, no logro conectar mi ssh, me pueden ayudar?, ya cree la llave y la coloqué en mi cuenta de github pero cuando intento subir algo se queda cargando y al rato sale esto:

Fredy dice que por cada computador hay que tener una llave ssh pero tambien hay que crear una por cada repositorio.
me podrian explicar bien esa parte??

Hola Cada que se reinicia mi compu se pierde la contraseña de la llave, hay algún comando especial para mantenerla o siempre que renice tengo que usar el comando ssh-add?

Dato curioso:
Si haces el commit con el correo de otra persona en el git config user.email, el commit en el repositorio remoto queda como si lo hubiera hecho esa persona, tengas o no acceso a esa cuenta.

Esa mirada de Freddy, Jajajaja.!

-Se usa

git pull origin main 

-Por cambios en github
-Y no el 

git pull origin master

-No debes de poner: 

git push origin master

-Se debe poner:

git push origin master:main

Hasta Aquí todo bien, uno se siente satisfech@ cundo los comandos y/o códigos funsionan y no generan error ☺️ 🤩
Hasta comer uno se olvida 😅 😂
Comandos de Conexión a GitHub con SSH

$ pwd //Nos muestra la ruta donde nos encontramos.
$ ssh-keygen -t ed25519 -C "[email protected]" // Para crear una llave en GitHub del proyecto
$ eval $(ssh-agent -s) //Encender el "servidor" de llaves SSH de tu computadora
$ ssh-add ~/.ssh/id_ed25519 //Donde esta la llave SSH
$ [email protected]:DesiTechgo/compras.git //Copiar del SSH GitHub
$ git remote -v //
$ git remote set-url origin [email protected]:DesiTechgo/compras.git //Para cambiar de HTTPS a GIT
$ git push origin main //Enviamos al Remoto
$ git pull origin main //Traemos los cambios del Remoto
$ git status //Modificamos Index.html
$ git diff // Para ver que se cambió en index
$ git commit -am "Una version de compras" //
$ git push origin main //Enviamos al Remoto los cambios

Dato curioso por si tienen problemas con el pull:

No le coloque passphrase a las llaves y cuando hice el git pull me mostró el siguiente error:

.ssh/config: line 3: Bad configuration option: userkeychain
.ssh/config: terminating, 1 bad configuration options
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Busqué en la documentación de git y encontré esto:

Note: If you chose not to add a to your key, you should omit the UseKeychain line.

Elimine esa linea y luego funcionó. 😃

Hey compañeros que están en el 2021, empezando con este tema, si les envía error a pesar de aplicar todos los demás consejos aquí les dejo algo que me ayudo a establecer bien la conexión.

Recuerden que GitHub tuvo cambios y ya no es master, sino que ahora es main. Aquí un artículo Cambios en GitHub: de master a main

en que caso amerita que las url sean distintas (FETCH Y PUSH) ??

porque diablos no actualizan los cursos. Que llevo fijandome en todas partes y todo lo que estoy haciendo no me sale cada vez que estoy haciendo el "git push origin main" porque me pide el nombre de usuario y contraseña, cuyo nombre de usuario y contraseña no es ninguna y tampoco me deja entrar con tokens o por lo menos no se

Si estás usando git bash te dejo este enlace para que configures la rama main por defecto:
https://help.dreamhost.com/hc/en-us/articles/4466702078740-Configure-git-to-use-main-as-the-primary-branch
Usé el comando:
git config --global init.defaultBranch main

Para los que les salga un error haciendo el push con un mensaje asi: Support for password authentication was removed on August 13, 2021. Miren este video: https://www.youtube.com/watch?v=vIC_LXNaTCo

quizás a alguien que este viendo esta parte del curso , cuando el profesor dice si porfavor al vincular la cuenta ,no dice ni explica como lo hace , en esta parte lo realiza con el comando
esc+shift+z+z min 5:46

Deben actualizar este curso, ya que hasta la web de Github luce completamente diferente ahora.

Hola compañeros, comparto mi resumen de esta clase!

Me preocupa algo, si yo hubiera creado mi ssh key con “[email protected]”, hubiera importado estas llaves en mi Github, hecho un cambio, hecho un git pull y luego un git push, aparecería en mi History, que Freddy Vega estuviera haciendo cambios en mi Github? pero en realidad no es el, si no que soy yo, usurpando su identidad, es esto posible? estoy en lo correcto? lo probaré.

Observando la sección desde que se toma el link para la clonación del repositorio, me aparece la sección Github CLI y aparece una especie de comando, mi pregunta si yo utilizo dicho comando, se clonaria el repositorio remoto sin utilizar el comando que hemos visto en las últimas clases, de no ser así. ¿Exactamente que hace este comando?

Si se quiere simplificar el tema, ya existe GitHub Desktop, asi no tienen que crear llaves, el hace todo solito por debajo.
https://desktop.github.com/
El tema de las llaves, es complicado de manejar para muchas personas debido a la complejidad de en donde se guarada, y si se pierden y demas…pueden ponerle doble factor a la cuenta y usar GitHubDesktop

Todo me esta funcionando correctamente, de hecho incluso pude hacer el push hacia mi repositorio pero en la terminal se me esta imprimiendo lo siguiente, alguien podría ayudarme identificando que es y si debería de hacer algo al respecto. El mensaje que me muestra luego del git pull origin master es el siguiente:

You can replace "git config" with "git config --global" to set a default preference for all repositories. You can also pass --rebase, --no-rebase, or --ff-only on the command line to override the configured default per invocation.

Estoy en Mac OS

Debido al cambio de master a main, aveces tenia conflictos porque en Git Bash la rama principal seguia llamandose “master”, para solucionar eso renombre la rama local con el comando (git branch -m master main). Y ya puedo hacer push y pull siempre con la palabra main

Si desean poder cambiar su passphrase o contraseña si es que agregaron alguna pueden usar ssh-keygen -p y de esta manera pueden cambiar a otra o solo no poner ninguna para no tener poner ninguna

Por si a alguien le ayuda. Tuve un problema, PC Windows en mi Universidad:
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
.
Solución: crear un archivo config y añadir:
Host github.com
Hostname ssh.github.com
Port 443
-Link–> https://help.github.com/en/articles/using-ssh-over-the-https-port

Si ejecutamos el comando:

git remote set-url origin url-ssh-del-repositorio-en-github

sin antes haber hecho la conexión por https, marcará un error ya que no existe origin, el comando que tiene que ser ejecutado es:

git remote add origin url-ssh
  1. Ingreso a GitHub
  2. Ingreso a Settings
  3. Ingreso a SSH and GPG keys
  4. Uso la opción: ‘New SSH’
  5. Coloco el nombre de la llave y copio el texto de la llave pública

Ahora conecto el repositorio local al remoto:

# ingreso al repositorio remoto y uso la opción 'clone'
# cambio https por ssh y copio en enlace
# abro consola y voy al directorio de mi proyecto
# evaluo la conexion actual
$ git remote -v

#cambio la conexion tanto para fetch como para push
$ git remote set-url origin [pego enlace]

# vuelvo a validar
$ git remote -v

# hago pull para traer la última versión del proyecto ahora usando llaves
$ git pull origin master

# El sistema pregunta si estoy seguro de continuar. Indico que si
# Hago un cambio en mi directorio local y lo subo al repositorio remoto
$ git status
$ git commit -am "Nueva version de mi blogpost"
$ git push origin master

buenas tardes chicos yo tenia este prolema
$ git pull origin master
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

esto pasa por que a veces, los firewalls se niegan a permitir conexiones SSH por completo. Si el uso de la clonación HTTPS con almacenamiento en caché de credenciales no es una opción, puede intentar clonar utilizando una conexión SSH realizada a través del puerto HTTPS. La mayoría de las reglas de firewall deberían permitir esto, pero los servidores proxy pueden interferir
y la solucion es esta

Lo que hice para resolverlo fue editar la configuración de git (o agregarla si no existe).

$ nano ~/.ssh/config

Y agregué lo siguiente

Host github.com
Hostname ssh.github.com
Port 443

Luego, ejecute el comando ssh -T [email protected] confirmar si el problema está solucionado.
Espero que esto ayude a cualquier otra persona que tenga el mismo problema que yo.

A este curso le hace falta otra actualización aquí la solución fácil y rápida: En esta clase lo que se pretendia era hacer un push y se acabo haciendo un pull primero para luego hacer un push. Para traer un repositorio remoto está el comando de clone, esta clase debería ser "como subir un proyecto local a Github" ya que pasar por tantos dolores de cabeza para traer un archivo que en realidad no tiene nada (readme.md) es ilógico. Para esta clase lo mejor sería crear un repositorio en github vacio, de lo contrario al querer traer con pull al local, Git nos va decir que hay problemas porque el contenido es diferente y va dar una serie de errores. (ya que el readme.md lo podemos crear local y no nos va generar el conflicto. Entonces lo correcto es: 1\. Cambiar el nombre de la rama "master" a "main" con el comando: `git branch -m main` 2\. configurar por defecto que las nuevas ramas que inicies al hacer init, sean "main" en lugar de "master" para evitarte escribir el comando del punto 1, constantemente. Eso lo hacemos con el comando `git config --global init.defaultBranch main` (sí, con el Branch, en mayuscula 3\. Crear un repositorio en Github vacio, esto quiere decir, ponle el nombre del repositorio, la descripción, pero deja sin chulear la opción que dice "Add a README file" una vez creado el repo remoto, copiamos el link 4\. en el gitbash usamos el comando `git remote add origin <el link que acabas de copiar del repositorio sin los signos de mayor y menor que (vale la pena aclarar)>` das enter 5\. Crear un token de acceso personal en github (esto porque Github quito el requerimiento de la contraseña para hacer push. Para generar el token damos clic en nuestra imagen de Github, vamos a settings - Developer settings (está de ultimo) - Personal access tokens - tokens -Generate new token - chulear la opción de repo - clic en Generate token. Copias el Token (guardalo en algún archivo) lo pegas en git bash y enter 6\. En git bash ejecutas `git push -u origin main` luego te pedira username de Github, lo escribes, das enter, luego te pide contraseña de github, escribes lo que sea por que salta un aviso que dice que ya no se pide esto y que en su lugar se pide el token, pegas el token que ya habias creado y enter (esto sólo sucederá la primera vez, te va pedir contraseña de la cuenta de github y te da un aviso diciendote que en su lugar ahora necesitas el token, de ahí en adelante te va pedir contraseña, pero lo que tendras que seguir usando es el token. 7\. Listo, ya hiciste tu primer Push sin morir en el intento o arrancarte el cabello, puedes ir a revisar el repositorio remoto en Github y ya tendrás tus archivos y carpetas
Estas tres clases anteriores deberías reemplazarlas completamente, ya no son para nada acordes con lo que hay hoy día.

Hola, les comento que el comando que me funciono fue

git push -f origin main

Hola a todos, para configurar por defecto el cambio de rama master a main para cualquier proyecto futuro, entrar a la terminal y escribir:

git config --global init.defaultBranch main

Espero les sirva.

Gente, si tuvieron 1000 y 1 kilombo con esta clase, les super recomiendo copiar el error que les tira la consola en Chat GPT y este se encargará de guiarte amenamente paso por paso hasta llegar al objetivo !

Para los que presentan fallas al ingresar su contraseña

Para los que tengan problemas al poner la linea de comandos “git pull origin main --allow-unrelated-histories”, prueben colocando esta primero “git config --global pull.ff true”

El comando que hace Freddy en el minuto 1:37 no hay que hacerlo justo ese momento (se cuelga la terminal de GIT), se debe hacer lo que dice la profe justo a continuación y usar main en lugar de master todo el resto del curso*

Si ya ejecutaste la creación del repositorio remoto con https://, para crearlo nuevamente con ssh, debes primero remover el origin, para esto se ejecuta el siguiente comando:

Y luego procedes de la manera normal con ssh.

Se debería actualizar el curso ya que seguramente ha creado confusión la forma de crear el origin con ssh y con https, actualmente https Git, ya no te permite y el soporte mediante password ha sido ya removido en la gestión 2021

Un poco difícil avanzar si ponen sección de preguntas y nadie responde (profesores)… siguiendo los pasos paso a paso genera errores que al profe Freddy no… en fin… tomará más tiempo de lo estimado ni modo…

Mas o menos así seria

Hola, quiero avisar de un error que tuve copiando la url ssh al momento de cambiar el origin. Una vez hecho me salía siempre este error:

fatal: remote error:
is not a valid repository name
Visit https://support.github.com/ for help

Esto es porque al momento de copiar el link de acceso ssh, por alguna razón me lo copiaba con caracteres extra:

[email protected]:lautar007/blogDePrueba.git01~

cuando en realidad debería ser:

[email protected]:lautar007/blogDePrueba.git

Realicé otro cambio del origin, esta vez con el acceso sin caracteres de más y ya pude hacer tranquilamente el pull. Espero que le sirva a alguien que pudo haber tenido mi mismo error.

Paso a paso para enviar a repositorio de github:

  1. git branch -M main >> Cambio de nombre de la rama para no tener conflictos
  2. git remote add origin (Aqui va el link de Github)
  3. git pull origin main --allow-unrelated >>> Aqui traemos el documento .README de GitHUB
  4. git push origin main >>> Aquí enviamos al repositorio de github

Ahora Github recomienda usar ed25519 en vez de rsa, para hacerlo de esta manera.
Para generar la llave usan el comando

<ssh-keygen -t ed25519 -C "[email protected]"> 

Y para agregar tu llave privada copias en el git bash el siguiente comando si estas en windows o linux

<ssh-add  ~/.ssh/id_ed25519> 

y para copiar tu llave publica, también usando el bash usas

<cat ~/.ssh/id_ed25519.pub> 

Espero que les pueda servir 😊

Probablemente muchos esten realizando este curso en Linux y generaron un pasphrase para la llave SSH. Al hacer eso se dieron cuenta que cada vez que hagamos pull o push nos pide ingresar dicho passphrase. Esto es bastante incomodo y ralentiza el ritmo con el que ahces las practicas de las clases, no obstante hay solucion para esto:

Se debe hacer uso de ssh-agent para que de eswta forma el sistema guarde tu passphrase de forma temporal y no sea necesario agregarla en todo momento.

Para esto debemos iniciar el ssh-agent para autenticacion no interactiva

$ eval $(ssh-agent)
$ eval `ssh-agent`

Te salgdra el ssh-agent id:

Agent pid

Usaremos ahora ssh add para agregar nuestra llave privada a ssh-agent:

$ ssh-add

El sistema nos solicitara escribir nuestro passphrase, una vez hecho esto nos indicara que nuestra llave ha sido incluida:

Enter passphrase for /home/"username"/.ssh/id_edXXXX: 
Identity added: /home/"username"/.ssh/id_edXXXXXX (username@domain)

Esto guardara el passphrase durante tiempo limitado, se peude cmabiar tmabien el tiempo de duracion pero temo que no continuen leyendo por mucho texto asi que les comparto la fuente que utilice para este proceso. Igual mente estare compartiendo la guia de Github para esta misma configuracion en MacOS y Windows:

https://www.cyberciti.biz/faq/how-to-use-ssh-agent-for-authentication-on-linux-unix/#Using_ssh-agent_command

https://docs.github.com/en/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases

Hola, a mi me trae esto, me pueden ayudar.

$ git pull origin master
Warning: Permanently added the RSA host key for IP address ‘140.82.114.4’ to the list of known hosts.
From github.com:PaulMoro/exercise-GitHub

  • branch master -> FETCH_HEAD
    Already up to date.

Este curso es impresionant e!!

Recuerden limpiar pantalla es con clear o con Ctrl+l.

En realidad no limpia la terminal, lo que en realidad hace es enviar escrito hacia arriba.

Apuntes de la clase:

Nada de esto servirá si no practicas

Para aquellos que están usando WSL y no tienen una forma grafica de observar la llave publica mas que la terminal pueden hacer lo siguiente

 cat ~/.ssh/id_rsa.pub

Y ya la tienen a la llave en su terminal y la copian a GitHub

Sí en vez de estar usando git bash estan usando una terminal de ubuntu.
Para abrir la llave pública, pueden seguir los siguientes pasos:

  1. cd ~/.ssh
  2. cat id_rsa.pub
    De ahí pueden copiar esa llave y pasarla a GitHub

En nuestro perfil de Github se debe agregar nuestra llave pública en el menú “Settings” -> “GPG Keys” y allí agregamos nuestra llave. Hay que tener en cuenta que es una llave que deberíamos de tener por computador, para evitar que sea intervenida y seamos victimas de cyberdelincuentes.

Anteriormente tuve un error
Hola saludos a todos si al mandar el comando
eval $(ssh-agent -s)

me retorna esto bash: ssh-agent: command not found

Y no es un error de sintaxis por que ya busque bien como se escribe tengo windows 7
Ayudenme `por favor gracias.

Investigue y investigue y no solucione el problema pero dije no me voy a rendir voy a seguir adelante no puedo perder tiempo de aprendizaje .

Y hice el resto conecte mi llave en github y me funciono segui adelante y al parecer asta ahora solucione el problema.
Estoy en windows 7 pero me cambiare a linux pronto.

Gracias y saludos a todos .

Ayuda, me aparece este mensaje cada que hago un pull o un push ya conectado con ssh correcto:
Warning: Permanently added the RSA host key for IP address ‘140.82.114.4’ to the list of known hosts.
Como solo es una advertencia no afecta, pero que es y como corrijo o hago para que no salga? Gracias.

Todo listo. Les recomiendo que antes de seguir con el curso, si trabajan en mas PCs dejen todas sus llaves listas ahora así les es más fácil continuar después. Personalmente sigo los cursos de Platzi desde dos pcs diferentes y es muy útil ya dejar todo listo en las 2 para continuar

Una consulta, al hacer git pull o git push todo funciona normal, pero alguien sabe ¿por qué aparece un mensaje que dice Warning? y ¿si es algo “malo”? 🤔😃

alain@DESKTOP-1EJ88AC MINGW64 ~/proyecto1 (master)
$ git pull origin master
Warning: Permanently added the RSA host key for IP address '140.82.113.3' to the list of known hosts.
From github.com:Alincut/hyperblog
 * branch            master     -> FETCH_HEAD
Already up to date.

Conexión a GitHub con SSH
Importante aclarar: cada usuario, cada computadora tiene que tener una llave única conectadas con el repositorio o no funcionara. No es buena idea compartir las llaves de una computadora a otra porque pueden ser interceptadas.

Para añadir la llave vamos a Github en la opción Settings y luego a la opción SSH and GPG Keys en el titulo ponemos la descripción de cual computador será y en el recuadro de abajo pegamos la llave, le damos agregar y ponemos la contraseña de nuestra cuenta Github.

De esta forma ya tendríamos conectado nuestro repositorio de github con la llave publica del computador de donde hayamos generado las llaves, luego vamos a nuestros repositorios, la opción clone or download (Code) y luego damos click al boton Use SSH y copiamos esa url para setearla como el repositorio al cual nos conectaremos.

git remote set-url origin ExampleSSHurl Esto nos permite cambiar la url de origin (del repositorio origin). Podemos confirmar que ya cambio usando nuevamente git remote-v

git pull origin master Con este le decimos que traiga de origin (mi repositorio remoto) y lo vamos a fusionar con la rama master.
git push origin master Este nos permite enviar commits que hicimos en master al repo origin