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: c贸mo traer commits antiguos al head de un 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

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 564

Preguntas 351

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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 鈥済it remote set-url origin鈥 entonces investigue y encontr茅 este 鈥済it config remote.origin.url + la url SSH鈥 y si funciono perfecto
Espero que les sea de ayuda 鉂わ笍

Ac谩 les dejo mis anotaciones:

Si tienen duda de como cambiar o quitar el passphrase, les comparto este link:
https://www.simplified.guide/ssh/set-remove-passphrase

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 鈥榵xx.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

馃

  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鈥檚 randomart image is:
    卤鈥揫RSA 4096]----+
    | o**+. |
    | .=Xo . . |
    | 鈥+ +鈥 . |
    |. E鈥 = B 鈥 |
    |o.o鈥 o S.+ 鈥 |
    |* .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 鈥渘煤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鈥檛 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

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/[email protected]/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account

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.

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

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, 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:)

Solo una peque帽a correccion, el comando 鈥済it pull origin master鈥 (y push) especifica con la palabra 鈥渙rigin鈥 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 鈥済it 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!

PRO TIP: para los que tienen problemas al conectarse con SSH o les pide su frase contrase帽a, es necesario tener la clave SSH y adem谩s tener agregada la contrase帽a al agente SSH.
Pongo la manera oficial actualizada de hacerlo, en espa帽ol y para los 3 sistemas operativos m谩s usados:
https://docs.github.com/es/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

En mi caso, segu铆 las instrucciones y puedo hacer todo en GitHub autom谩ticamente de manera transparente desde la Terminal o desde VScode.
Uso Mac, pero debe funcionar tambi茅n para Windows y Linux.
隆Espero sea 煤til, saludos, amigos! 馃槃

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

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

Para los que establecieron un 鈥減assphrase鈥 les pedir谩 adicional que la ingresen, solo introducen su passphrase y listo del resto funciona perfecto!

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

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 鈥済it config --global pull.ff true鈥 establece una configuraci贸n global en Git para 鈥渇ast-forward merges鈥 o fusiones de avance r谩pido durante las actualizaciones de un repositorio local a partir de un repositorio remoto.

鈥淔ast-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 鈥減ull.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 鈥済it config鈥 with 鈥済it 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.

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: 鈥淟a practica hace al maestro鈥

Solo como observaci贸n.

El siguiente comando, te modifica las url鈥檚, 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

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?

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 [email protected] 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]github.com: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) ??

Hola, cuando hacemos el merge con la rama main

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

En el video Freddy dice 鈥渟i 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

Urge actualizaci贸n de este curso!

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 !!!

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鈥ueden 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

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 鈥淩eadme鈥 de Github pero es f谩cil volver a crearlo, y ya despu茅s hacen un pull con normalidad c:

Debido al cambio de master a main, aveces tenia conflictos porque en Git Bash la rama principal seguia llamandose 鈥渕aster鈥, 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 a alguien le sale el siguiente error

<pusherror: failed to push some refs to> 

la solucion es :

<git push origin master:main> 

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: 鈥楴ew 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.

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

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

驴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

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

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 ([email protected])

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煤 鈥淪ettings鈥 -> 鈥淕PG 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 鈥渕alo鈥? 馃馃槂

[email protected]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

驴En este caso que deber铆a hacer? Leyendo en la pagina de github encontr茅 las recomendaciones , pero ninguna me fue 煤til.
![](

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茅.

Para a帽adir un key a nuestro github, solo tenemos que copiar nuestra llave pub, luego vamos a nuestro perfil de github y luego all铆 en configuraciones -> SSH and GPG Keys y luego le damos a帽adir llave, el resto es pan comido.

Clase 22. Conexi贸n a GitHub con SSH

Importante

Cada usuario, cada computadora, cada persona debe tener su llave SSH 煤nica. Si tienes 3 laptops cada una debe tener su propia llave. Si quieres copiar tu llave privada a las dem谩s computadoras se puede hacer pero no es lo recomendable ya que existe la oportunidad de que la intercepten

  • 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.
  • Bien, ahora nos vamos a nuestro repositorio en Github y en lugar de agregarlo con HTTPS como la vez anterior; lo hacemos con SSH, copiamos la URL que nos muestra y nos vamos a la carpeta de nuestro proyecto para cambiar la URL del repositorio en Github origin con: git remote set-url origin tu-url
  • Para asegurarnos de que los cambios han sido correctos ejecutamos git remote -v . Donde podemos ver que la URL HTTPS que ten铆amos ha sido modificada de forma correcta por la nueva.

Excelente todo ha quedado bien, vamos a hacer unos cambios en el archivo html para ver como se debe manejar el flujo de trabajo.

  • Una vez que hicimos esos cambios, en lugar de hacer un commit con git commit -am "mensaje" para agregarlos al repositorio local haremos un git pull origin master para traernos la ultima version de los archivos.
  • Despu茅s de hacer eso ahora si hacemos un commit, pero en vez de enviarlos con git push origin master, ejecutaremos otra vez git pull origin master. Porque es posible que mientras hicimos ese commit posiblemente alguien hizo cambios y as铆 evitaremos tener conflictos.
  • Ya que lo hicimos podremos hacer un git push origin master y si nos vamos a nuestro repositorio de Github podremos observar los cambios, y sin pedirnos nuestra contrase帽a como antes.

Espero que les sirva de complemento

Es muy recomendable crear las llaves ssh por cada dispositivo y repositorio que se tenga, ya que con ello, tenemos un nivel de seguridad mayor para nuestros repositorios

Recuerden que ahora todos los comandos son con MAIN en ves de MASTER! (nuestra Brach tiene que tener el nombre de main)

Github ahora cambio el nombre default de master a main para evitar referirse a la esclavitud, tal vez sea 煤til para alguien por all铆

He hecho algunos apuntes de lo que llevamos del curso hasta el momento. Si gustan pueden verlos, de pronto puede ser 煤til.
Apuntes

Nunca dejes de usar las voces Freddy xD

Qu茅 pasa si por error elimine mi key 馃槮

Estaba obteniendo un error de tipo 鈥渇atal: rehusando fusionar historias no relacionadas鈥, el cual solucione realizando el pull de esta manera: 鈥済it pull --allow-unrelated-histories origin main鈥

Conectar nuestro repositorio local a un servidor remoto


Cuando clonamos un repositorio remoto en nuestro PC, se crea una conexi贸n autom谩tica con la configuraci贸n original del repositorio. Esto es a lo que apunta la conexi贸n remota de 鈥渙rigen鈥 (origin).
.
Esto no ocurre cuando el repositorio lo creamos inicialmente de forma local. Por esa raz贸n, debemos establecer una conexi贸n manualmente de la siguiente manera:
.

  1. En tu repositorio local, aseg煤rate de haber hecho todos los commits necesarios y de que tu rama principal se llame 鈥渕ain鈥 (o el nombre que hayas elegido como rama principal).
    .
  2. Crea un nuevo repositorio en GitHub. Si ya lo has creado, puedes omitir este paso.
    .
  3. Copia la URL-SSH del repositorio de GitHub.
    .
  4. En tu terminal, navega hasta la carpeta de tu repositorio local.
    .
  5. Ejecuta el siguiente comando para agregar la** URL** del repositorio remoto de GitHub como un 鈥渞emote鈥 de Git en tu repositorio local: git remote add <remote_name> <url_ssh>
    .
  6. Verifica que el 鈥渞emote鈥 se haya agregado correctamente ejecutando el siguiente comando: git remote -v
    .

Primeros push, fetch y pull


Una vez establecida la conexi贸n, debemos tener en cuenta varias cosas:
.
鈥 驴Qu茅 informaci贸n tiene nuestro repositorio remoto?
鈥 驴Qu茅 informaci贸n tiene nuestro repositorio local?
鈥 驴Es la primea vez que establecemos una conexi贸n entere nuestro PC y GitHub?
.
Lo primero que deber铆amos hacer es traer el contenido de nuestro repositorio remoto a nuestro repositorio local. Podemos hacerlo mediante una petici贸n de git fetch o por medio de git pull.
.

git fetch


  1. Abre tu terminal y aseg煤rate de estar en el directorio de trabajo correcto. Usa el comando cd para cambiar de directorio si es necesario.
    .
  2. Verifica si ya tienes el repositorio remoto vinculado a tu repositorio local. Para hacer esto, usa el comando git remote -v. Si ya est谩 vinculado, deber铆as ver la URL del repositorio remoto.
    .
  3. Usa el comando git fetch origin para descargar cualquier cambio nuevo del repositorio remoto a tu repositorio local. Esto actualizar谩 tus referencias locales al repositorio remoto.
    .
  4. Podemos ver qu茅 confirmaciones se han descargado por medio de git log --oneline main..origin/main
    .
  5. Despu茅s, debemos aprobar los cambios y fusionarlos en nuestra rama local principal. Esto sincronizar谩 las historias del repositorio remoto y local.
    .
    git checkout main
    git merge origin/main
    .

git pull y git push


Antes de hacer un pull, debemos tener en cuenta las historias creadas en nuestro repositorio local y nuestro repositorio remoto, ya que son dos historias no relacionadas. Si hacemos un pull, nos mostrar谩 el siguiente error:

$ git pull origin main
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 651 bytes | 34.00 KiB/s, done.
From github.com:ledytro/hyperblog
* branch            main       -> FETCH_HEAD
* [new branch]      main       -> origin/main
fatal: refusing to merge unrelated histories

Para solucionar este problema, puedes utilizar la opci贸n --allow-unrelated-histories con el comando git pull para permitir la fusi贸n de historias no relacionadas. Puedes hacer lo siguiente:
.

  1. Ejecuta el comando git pull origin main --allow-unrelated-histories para permitir la fusi贸n de historias no relacionadas.
    .
  2. Si hay conflictos de fusi贸n, debes resolverlos manualmente editando los archivos en conflicto y luego hacer git add y git commit para confirmar la soluci贸n de conflicto.
    .
  3. Ejecuta el comando git push origin main para empujar los cambios fusionados al repositorio remoto de GitHub.

馃し鈥嶁檪锔忦煈 Si usas GitHub sin configurar una clave SSH, realmente te est谩s perdiendo de algo genial. Piensa en todo el tiempo que pasaste introduciendo tu correo electr贸nico y tu contrase帽a en la consola cada vez que haces un commit podr铆as haberlo pasado programando.

amigos si no les da por ningun lado la clase les recomiendo tomar esta para conectar es lo mismo pero aca esta como mejor.

https://platzi.com/clases/2383-prework-linux/39148-subiendo-nuestro-primer-repositorio/

MIs apuntes para llevar mi repositorio local a github

  1. git remote add origin 鈥渄irecci贸n que nos dio github鈥
  2. en github copiar la url que nos asigno github鈥
  3. dar enter donde dice 鈥渉yperblog鈥
  4. dar enter donde dice 鈥渃ode鈥 y copiar la direcci贸n que nos asigno github
  5. en la pantalla de git bash ir a nuestro directorio del proyecto鈥royecto1
  6. vamos a decirle a git que vamos agregar un origen remoto de nuestros archivos con
    git remote add origin 鈥渄irecci贸n que nos dio github enter
  7. 19 escribir git remote enter y nos muestra origin
  8. Escribir git remote 鈥搗 ( y nos muestra un origin para hacer fecht(traernos cosas) y un origin para
    hacer pusht(enviar cosas)
  9. Git push origin main-----estamos diciendo git env铆ale al origen la rama master bueno rama main

Para los que presentan fallas al ingresar su contrase帽a