Ahora se viene lo chido
Introducción a Git
¿Por qué usar un sistema de control de versiones como Git?
¿Qué es Git?
Instalando GitBash en Windows
Instalando Git en OSX
Instalando Git en Linux
Editores de código, archivos binarios y de texto plano
Introducción a la terminal y línea de comandos
Comandos básicos en Git
Crea un repositorio de Git y haz tu primer commit
Analizar cambios en los archivos de tu proyecto con Git
¿Qué es el staging?
¿Qué es branch (rama) y cómo funciona un Merge en Git?
Volver en el tiempo en nuestro repositorio utilizando reset y checkout
Git reset vs. Git rm
Flujo de trabajo básico en Git
Flujo de trabajo básico con un repositorio remoto
Introducción a las ramas o branches de Git
Fusión de ramas con Git merge
Resolución de conflictos al hacer un merge
Trabajando con repositorios remotos en GitHub
Cómo funcionan las llaves públicas y privadas
Configura tus llaves SSH en local
Uso de GitHub
Cambios en GitHub: de master a main
Tu primer push
Git tag y versiones en Github
Manejo de ramas en GitHub
Configurar múltiples colaboradores en un repositorio de GitHub
Flujos de trabajo profesionales
Flujo de trabajo profesional: Haciendo merge de ramas de desarrollo a master
Flujo de trabajo profesional con Pull requests
Utilizando Pull Requests en GitHub
Creando un Fork, contribuyendo a un repositorio
Haciendo deployment a un servidor
Hazme un pull request
Ignorar archivos en el repositorio con .gitignore
Readme.md es una excelente práctica
Tu sitio web público con GitHub Pages
Multiples entornos de trabajo en Git
Git Rebase: reorganizando el trabajo realizado
Cómo usar Git Stash: guarda cambios temporalmente
Git Clean: limpiar tu proyecto de archivos no deseados
Git cherry-pick: traer commits antiguos al head del branch
Comandos de Git para casos de emergencia
Git Reset y Reflog: úsese en caso de emergencia
Reconstruir commits en Git con amend
Buscar en archivos y commits de Git con Grep y log
Bonus sobre Git y Github
Comandos y recursos colaborativos en Git y GitHub
Tu futuro con Git y GitHub
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Freddy Vega
GitHub es una plataforma que nos permite guardar repositorios de Git que podemos usar como servidores remotos y ejecutar algunos comandos de forma visual e interactiva (sin necesidad de la consola de comandos).
Luego de crear nuestra cuenta, podemos crear o importar repositorios, crear organizaciones y proyectos de trabajo, descubrir repositorios de otras personas, contribuir a esos proyectos, dar estrellas y muchas otras cosas.
El README.md
es el archivo que veremos por defecto al entrar a un repositorio. Es una muy buena práctica configurarlo para describir el proyecto, los requerimientos y las instrucciones que debemos seguir para contribuir correctamente.
Para clonar un repositorio desde GitHub (o cualquier otro servidor remoto) debemos copiar la URL (por ahora, usando HTTPS
) y ejecutar el comando git clone
+ la URL que acabamos de copiar. Esto descargará la versión de nuestro proyecto que se encuentra en GitHub.
Sin embargo, esto solo funciona para las personas que quieren empezar a contribuir en el proyecto.
Si queremos conectar el repositorio de GitHub con nuestro repositorio local, que creamos usando el comando git init
, debemos ejecutar las siguientes instrucciones:
git remote add origin URL
git remote
git remote -v
git fetch
y git merge
o solo git pull
con el flag --allow-unrelated-histories
:git pull origin master --allow-unrelated-histories
git push
para guardar los cambios de nuestro repositorio local en GitHub:git push origin master
Antes de empezar debemos renombrar la rama ‘máster’ a ‘main’, este es el nuevo estándar en GitHub, para esto:
git branch -M main
Pasos para crear un token de acceso personal.
Desde el 2022 GitHub ya no deja hacer el push con la contraseña del propio GitHub, para esto tenemos que crear un token, y este token es la contraseña que vamos a colocar cuando nos pida clave.
Descubre el uso de tags en Github
Seguir la secuencia: Ingresamos a nuestra cuenta de GitHub.
Settings
Developer settings
Personal access tokens
Generate new token
aquí se puede colocar un nombre, la fecha de expiración.Generate token
Aporte creado por: Ana Rotela
Aportes 1525
Preguntas 743
Ahora se viene lo chido
Si a ustedes no les sale el mensaje de que se tiene que traer los cambios y al intentar hacer el pull les dice que todo está actualizado es porque GitHub cambió su rama por defecto a “main” y nosotros estamos trabajando con la rama master, por tanto GitHub lo está tomando como un pull request (Porque sond iferentes ramas)
Para seguir esta clase deben borrar el repositorio en GitHub (Si ya lo tenían creado) y configurar su rama por defecto como master en:
https://github.com/settings/repositories
En el apartado “Repository default branch” borran main y escriben “master” y le dan al botón de actualizar, después vuelven a crear su repositorio “hyperblog” en GitHub y continuan la clase normal
Muchahos, a tener en cuenta:
GitHub en Octubre 2020 decide llamar la rama ‘master’ a rama ‘main’, lo que significa que en cuanto ha la clase han ocurrido unos cambios.
Al ejecutar el comando:
git push origin master
Estamos diciéndole a git que envíe a origin(remoto) la rama ‘master’ de nuestro repositorio local. Por lo tanto, en GitHub se interpreta como adicionar una rama independiente llamada ‘master’ con su contenido a bordo, pero no se carga en la rama default de GitHub, debido a que su rama default ahora se llama ‘main’.
Para alinear el contenido de Freedy y la actualización de GitHub, en la practica el comando para realizar el push según el nuevo estándar seria:
git push origin master:main
En donde le estamos diciéndole a git que envíe a origin(remoto) la rama ‘master’ de nuestro repositorio local hasta la rama ‘main’ del servidor remoto. De igual manera, dentro de esta nueva lógica:
git pull origin main --allow-unrelated-histories
En donde estamos trayendo desde el servidor remoto la rama ‘main’ fusionando las historias.
De tal manera que ya podemos continuar con el contenido de Freddy sin llegar a confundirnos.
Leí que GitHub se actualizó porque cambió su rama por defecto a “main” y nosotros estamos trabajando con la rama “master”, como Freddy. Por eso siempre me aparecía un error pero pude solucionarlo aplicando lo siguiente:
_Resumen _
A seguir aprendiendo! 😃
DOS ACTUALIZACIONES IMPORTANTES A NOV 2021 CON ESTA CLASE DE GITHUB
Espero les sirva!
Si ustedes son igual de despistados que yo y pusieron la clave SSH en lugar de la HTTPS en el origin ejecuten éste comando para que se borre lo que hicieron:
git remote remove origin
Hola quisiera compartir el siguiente link https://youtu.be/hlYkxZrdeBI , de acuerdo a la actualización realizada por Git a partir de agosto del 2021 debemos crear un Token para poder realizar Push.
Esto cada vez se pone mejor
*******************
****Iniciar Git****
*******************
git int
*******************
****Iniciar Git****
*******************
**********************************
*******Configuración de Git*******
**********************************
git config
git config --list
git config --list --show origin
git config --list --show-origin
git config --global
git config --global user.name "SC"
git config --global user.email "[email protected]"
**********************************
*******Configuración de Git*******
**********************************
********************************************
******Agragar a la zona de preparación******
********************************************
git add Archivo.txt
git add .
********************************************
******Agragar a la zona de preparación******
********************************************
****************************
*********Ver estado*********
****************************
git status
****************************
*********Ver estado*********
****************************
***************************************************************************
*****************Quitar de la zona de preparación**************************
***************************************************************************
git rm --cached archivo.txt (Quitar de la zona de preparación).
***************************************************************************
*****************Quitar de la zona de preparación**************************
***************************************************************************
************************************************************
**********************Realizar commint**********************
************************************************************
git commit -m "Este es el pimer commit de este archivo"
git commit -am "Este es el pimer commit de este archivo"
************************************************************
**********************Realizar commint**********************
************************************************************
*****************************************************
*******Ver el historial de cambios del archivo*******
*****************************************************
git log
git log Archivo.txt
*****************************************************
*******Ver el historial de cambios del archivo*******
*****************************************************
***************************************************************
************Muestra todos los cambios sobre un archivo*********
***************************************************************
git show Archivo.txt
***************************************************************
************Muestra todos los cambios sobre un archivo*********
***************************************************************
**************************************
**********Comparar versiones**********
**************************************
git diff commint commint
**************************************
**********Comparar versiones**********
**************************************
*****************************************************************************
************************Volver a una versión anterior************************
*****************************************************************************
git reset commit --hard (borramos todos los cambios y lo que tengamos en staging)
git reset commit --soft (soft conservamos cambios y lo que tengamos en staging)
git checkout (commit) Archivo.txt
git checkout (rama) Archivo.txt
*****************************************************************************
************************Volver a una versión anterior************************
*****************************************************************************
****************************************************************************
**************************Ver Cambio en bytes*******************************
****************************************************************************
git log --stat(Cambio en bytes)
****************************************************************************
**************************Ver Cambio en bytes*******************************
****************************************************************************
***************************************************************************
****************************Crear una rama*********************************
***************************************************************************
git branch (branchName)
***************************************************************************
****************************Crear una rama*********************************
***************************************************************************
***************************************************************************
**************************Cambiar de rama**********************************
***************************************************************************
git checkout (branchName)
***************************************************************************
**************************Cambiar de rama**********************************
***************************************************************************
*******************************************************************
************************Merge entre branchs************************
*******************************************************************
git merge (branchName)
**Estar en la rama master o en la que se quiere dejar el <Head>**
*******************************************************************
************************Merge entre branchs************************
*******************************************************************
****************************************************
************Traer un repositorio externo************
****************************************************
git remote add origin (url)
git remote (muestra el origen)
git remote -v(es verval)
git pull origin master --allow-unrelated-histories (Fuerza la union de las diferentes historias)
git pull origin master (Descarga cambios)
git push (origin) (master) (Sube Cambios)
****************************************************
************Traer un repositorio externo************
****************************************************
Para los que tomen el curso en 2022 y ya no tengan soporte de contraseñas tienen que ir a settings en github, después developer settings y ahí le dan a personal access token y esa es su contraseña que deben poner para conectarse con el servidor remoto
Para quienes estamos haciendo el curso después de Julio de 2020 antes de hacer el push sería bueno cambiar el nombre de la rama master a main, es el nuevo estándar para la rama por defecto en GitHub. Se hace así:
$ git branch -m master main
Subir Proyectos a git:
-Paso1:
git remote add origin YOUR URL
-Paso2:
git pull origin master
-Paso3:
git pull origin master --allow-unrelated-histories
"ESC"+“SHIFF”+“ZZ”
-Paso4
git push origin master
Por si a alguien se le olvido (como a mi :v) esc shift z z para salir de vim.
La red social para Nerds. Es la primera vez que siento que no desperdicio mi tiempo usando una red social.
Viendo este curso en el 2022, alguien más?
Tomé esta clase 4 veces XD hasta que me salió
No se cuantas cosas toque para subir mi proyecto al repo pero cambie la rama ‘master’ a ‘main’ con el comando ‘‘git branch -m main’’ y luego en https://github.com/settings/repositories cambie ‘master’ por ‘main’.
Utilice el comando ‘’’‘git pull origin main --allow-unrelated-histories’’’’ para traer la version del repositorio remoto. Luego use ‘‘git push origin main’’ y pude subirlo, pero anteriormente me aparecian miles de errores. Espero haber podido ayudar a alguien. Mas que nada es para la gente que lo esta viendo en 2021 xD
Les comento lo que me pasó al hacer git push origin main. (ya le cambié de nombre a la rama).
No tenía respuesta, nunca me salió ninguna opción para autenticarme, esto con Git Bash, luego me cambié de terminal, usé la de Visual Studio Code y funcionó, ya me visualizó opciones para autenticarme.
Si creaste un repositorio en Github en 2022, debes tomr encuenta dos cosas:
# Primero: Guardar la URL del repositorio de GitHub
# con el nombre de origin
git remote add origin URL
# Segundo: Renombrar la rama master
git branch -M master main
# Tercero: Traer la versión del repositorio remoto e
# hice el merge para crear un commit con los archivos
# de ambas partes.
git pull origin main --allow-unrelated-histories
# Cuarto: hacer el git push para guardar
# los cambios de nuestro repositorio local en GitHub:
git push origin main
A partir del 13 de agosto de 2021, GitHub exige un token para autenticarse cuando se usa protocolo HTTPS. Para crear un token:
Settings/Developer settings / Personal access tokens
Copiar el token y pegarlo cuando pida la contraseña después del push
Username for ‘https://github.com’: [email protected]
Password for ‘https://[email protected]@github.com’: (pegar aquí el token ejemplo ghp_xO4RK0xUJg3fAJMwc6ll1dOqvDWOkO16w3Dx)
En mi caso me aparecieron los siguientes errores:
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/vhngroup/CursoGitPlatzi.git'
Soluciòn:
Realizar primero un:
git fetch origin master
Luego al intentar nuevamente ejecutar el push, me apareciò este error:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/vhngroup/CursoGitPlatzi.git'
Soluciòn:
git push -f origin master
Nota:
Cambiar de rama a master, por que la clase anterior nos dejo en cabecera
Resumen de la clase:
En GitHub vamos a tener un repositorio remoto, el cuál queremos enlazar con nuestro repositorio local para subir y traer cambios. En GitHub debemos crear nuestro repositorio y para enlazarlo al repositorio local debemos copiar la dirección _URL _dada en la pestaña **VERDE **clone or download, luego, pegar esta URL en el comando que sigue:
$git remote add origin _URL_ (Enlaza los dos repositorios)
$git remote (Nos da el nombre del repositorio remoto)
$git remote (Nos da el nombre con las opciones de fetch y push, es decir que está habilitado)
Antes de subir a nuestro repositorio remoto, es necesario traer su historia al local, se utiliza el comando:
$git pull origin master (Trae las historias al repositorio local de origin, particularmente la rama master)
//Si hay historias no relacionadas no será exitoso, se soluciona con:
$git pull origin master --allow-unrelated-histories (Resuelve el conflicto de historias no relacionadas entre ambos repositorios)
Luego de que nosotros hagamos cambios en el local debemos subirlos al repositorio remoto para que nuestro equipo tenga acceso a estas historias, se utiliza el comando:
$git push origin master (Sube todo al repositorio remoto)
Espero que les ayude.
En el minuto 8:00 cuando quieran hacer el merge forzado con el repositorio les salga el siguiente mensaje
fatal: Need to specify how to reconcile divergent branches.
Tienen que insertar este comando
git config pull.rebase false
y a continuación el comando
git pull origin master --allow-unrelated-histories
En el minuto 8:06 para salir de la ventana deben presionar Shif + z, dos veces como lo explicaba en anteriores clases
en la parte de git pull origin master --allow-unrelated-histories para aceptar y salir de ahi se presiona esc+chif+zz
Para los que tienen problema al hacer el push, les comparto los pasos que realicé:
A) RENOMBRAR MASTER -> MAIN
git branch -m master main
B) FUSIONAR LAS RAMAS
git merge --allow-unrelated-histories origin/main
C) BAJAN LOS CAMBIOS PARA EVITAR CONFLICTOS
git pull origin main
D) SUBEN LOS CAMBIOS
git push origin main
A mi así me funcionó, Saludos.
De momento vamos bien, todo muy bien explicado. Estoy comenzando a crear mi propio repositorio en Git en donde pueda crear una pagina web estática y pueda alojar todos los comandos y lo que hace cada uno de ellos.
Si quieren hacer primero fetch y luego el merge en lugar del pull directamente:
#git fetch origin master
esto descarga los archivos a algo llamado FETCH_HEAD a como lo indica la terminal
en este punto parece que no ha pasado nada ya que los cambios se encuentran en FETCH_HEAD, y tus archivos no han cambiado. Para que tus archivos cambien debes hacer el merge
#git merge FETCH_HEAD
ya estoy haciendo push actualizando la informaciónde mis apuntes
Buenas, para quienes están viendo el curso en 2022, hace un tiempo que github ya no deja hacer el push con la contraseña del propio github, para esto tenemos que Crear un token y este token es la contraseña que vamos a colocar cuando les pida clave acá les explico cómo hacerlo para que puedan continuar la clase tranquilamente
Primero: Vamos a la parte de opciones y vamos a ir a settings
Segundo: Bajaremos hasta conseguir la opción que diga developer settings y hacemos click
Tercero: Nos vamos a ir a la opción que dice Personal acces token
Una vez allí vamos a dar click en generar un nuevo token
Nos aparecerá esto. Acá podremos generar nuestro token, en la nota, pueden colocar el nombre que le quieran poner o algo para lo que hayan creado ese token.
Tienen también la expiración, que es cuando se va a vencer el token (una vez el token expire no lo podrán usar denuevo)
Y debajo tienen unas opciones que son como los permisos que le quieren dar a su token, si solamente lo usarán para repositorios denle a la opción de “repo” y les selecciona todas las de esa ala
Luego bajan y le dan en generar token
Y por último, ya les crea su token, deben copiarlo en algún lugar, un bloc de notas o algo, porque va a desaparecer una vez cierren esa página y no podrán verlo nuevamente, tal cual como les dice el mensaje
Comandos a ser utilizados :
git remote add origin URL -Comando para guardar la url del repositorio de github
git remote -v -Comando para verificar que la URL se haya guardado corretamente, nos deberia traer la url donde hariamos el fecht y el push
git pull origin master --alow-unrelated-histories -Comando que trae la versión del repositorio remoto y hacer merge para crear un commit con los archivos de ambas partes.
git push origin master - Comando para enviar los cambios del repositorio local de git al repositorio remoto de github.com
Para los que les aparece
fatal: couldn't find remote ref master
Al escribir el siguiente comando:
git pull origin master --allow-unrelated-histories
Ingresen al link :
https://github.com/settings/repositories
Y cambien: main
por: master
Y actualizar
😉 !!
Este curso esta mas desactualizado, que aburrido, si nunca has tocado git, talvez tengas muchos problemas, sigue estos pasos para que no tengas problemas:
1.- Fuerzas mover todo el directorio local a la rama main para que no haya conflicto con:
git branch -M main
2.- Traes el repositorio remoto con :
git remote add origin URL
3.- haces un pull con :
git pull origin main --allow-unrelated-histories
4.- Si tienes algún problema acá de conflicto usas la siguiente configuración:
git config pull.rebase false
Para unirlos a la fuerza
git config --global init.defaultBranch main
Para usar como configuración main en lugar de master
en todos los directorios que uses git de la pc
5.- Haces tu git push como quieras
TOKEN COMO RESOLVERLO
(Vamos a nuestro perfil en GitHub)
1-Vamos arriba a la derecha hacia nuestro perfil, y elegimos la opción SeSETTINGS
2-En la columna de la izquierda de la pagina elegimos la opción DEVELOPER SETTINGS
3-En la columna de la izquierda elegimos la opción PERSONAL ACCESS TOKENS
4-Ahora hacemos clic en el botón GENERATE NEW TOKEN
5-Una vez generado nos va a decir que le pongamos una descripción (en mi caso hice referencia al nombre del repositorio), luego en ++**SELECT SCOPES **++tildamos la opción REPO, luego bajamos y apretamos el botón GENERATE TOKEN
6-Una vez tenemos el TOKEN lo copiamos y ahora cuando nos pida que nos identifiquemos, ponemos el usuario y ++**AL MOMENTO DE LA CONTRASEÑA PEGAMOS EL TOKEN **++y problema solucionado.
Para solucionar los problemas de la clase:
Inicialmente ya no se utiliza contraseña para iniciar sesión si no un token. Acá explican como generarlo. 👇
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
También tener en cuenta que ahora se utiliza main en ves de master, para modificarlo se debe hacer un:
git branch -m main
y por ultimo el push:
git push origin main
Para los que les salta el “error”
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: unable to access “…” : The requested URL returned error: 403
acá esta la solucion
Me siento más seguro en gitbash, me asuste en github, suponiendo que es más sencillo.
Me da miedo todo esto, no se si es por lo que tengo tanto sueño…
Si les aparece este error:
es porque github ya no permite poner tu propia contraseña en la consola. En lugar de hacer eso, lo que procede es poner un personal access token (PAT), que se genera desde la página de Github y es un código que, al menos para este caso, reemplaza a la contraseña de la cuenta de Github. Para generar uno solo se deben seguir los pasos que salen en este link:
Y al final, cuando el sitio te dé el token, ponerlo en el lugar en que te piden tu contraseña.
OJO: esto me pasó en la consola de WSL. No sé si en el Git BASH de Windows sea igual.
Chicos alguinos vamos a tener el mismo problema que me a pasado el cual no sale la forma de logarnos en Gut bash
lo cual la única solución que logre encontrar es desde la terminal Visual studios code realizar los mismos pasos que nos indica Freddy en este video foto del ejemplo
espero que sea de ayuda ya que no logre encontrar otra solución
Saludos mis panas. Desde agosto GitHub decidió eliminar el uso de contraseñas para vincular Git con GitHub (tu repositorio local con el remoto). Esto lo hizo con motivos de seguridad.
.
Así que en vez de emplear tu contraseña personal de GitHub para acceder y manipular opciones remotas, tendrás que usar un Personal Access Token (PAT). El mismo es como una contraseña super larga que puedes generar en tu perfil (te muestro más adelante) y que tiene fecha de expiración.
.
Adicionalmente puedes meterla en un gestor de credenciales de GitHub que se llama GitHub CLI, simplemente para que no tengas que buscar ese token a cada rato cuando tengas que hacer operaciones remotas.
.
Generar un PAT:
.
Aquí esta el link de documentación oficial si quieres ver la fuente original: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
.
$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
Espero te haya servido de ayuda!
Hola,
A diciembre de 2022 surge un problema debido a lo visto en el “modulo” 18, que como dice se ha cambiado de master a main.
Al crear el nuevo repositorio desde GitHub automáticamente lo crea con el tag de la rama “main”, mientras que si nosotros hemos seguido a Freddy al pie de la letra, desde Git la rama principal se sigue llamando “master”, si no sabemos el nombre de nuestras ramas ponemos el comando “git branch” y deberíamos ver “cabecera y master”.
Con el comando “git checkout master” nos posicionamos en master y ahora vamos a renombrarla a “main”:
Situados en master ejecutamos el comando: “git branch -m nombre-antiguo nombre-nuevo”.
De esta manera ya hemos cambiado el nombre de master a main. Ahora tenemos que borrar el repositorio creado en GitHub, desde nuestro repositorio (en la web), le damos a settings y abajo del todo le damos a “delete repository”.
(ESTO ES EN CASO DE YA HABER AVANZADO CON LA CLASE 19)
Una vez hechos estos pasos tendremos que crear el nuevo repositorio remoto que en la clase se llama “origin”. Con el comando “git remote -v” veremos que repositorios remotos tenemos creados y sus nombres (en el directorio/repositorio que estamos situados). Una vez vistos lo que debemos hacer es ejecutar el comando “git remote rm origin” y así eliminamos ese repositorio remoto llamado origin.
Y con esto ejecutamos git branch para ver que las ramas que tenemos son cabecera y main y ya podremos repetir la clase de hoy para que funcione perfectamente.
Espero que os sirva. 😃
Para los que vemos esta clase en el 2022, debemos cambiar el nombre de la rama principal en git por main, asi:
git branch -m main
Verficamos que quedo bien con:
git branch
Y ya despues si podemos seguir los pasos que Freddy hace, debemos tener en cuenta que debemos cambiar la palabra master por main y listo.
Yo no lo hice al principio y tuve que borrar en el Github una rama que me habia creado llamada master, pero despues de borrarla y cambiarle el nombre en el **Git **todo fue igual a la clase 😃 Espero les sea de ayuda.
Para quienes hacen el curso en el 2022, aquí dejo los pasos que seguí para enviar los archivos al repositorio remoto después de varios fracasos. Tuve problemas por eñ cambio de master a main.
__
__
git remote add origin "url_de_repositorio"
En algún momento necesité cambiar la url, y para ello utilicé:
git remote set-url origin <nueva_url_repositorio>
git branch -M main
git push origin main
git pull origin main --allow-unrelated-histories
Despues de este paso, me apareció el editor de texto VIM, me pedía que colocara un mensaje para el commit. Lo que hice fue eliminar el texto de color amarillo que aparece en las primeras lineas y coloqué el texto de mi mensaje.
Recuerda para editar en VIM, presiona ESC y despues la tecla " i ". Para salir, presiona ESC y después Shift + Z Z.
git push origin main
Gente, yo tambien me volvi LOCO con el problema que nos pasó a la mayoria en el minuto 5 del video.
Nosotros trabajamos con la rama master como nos indica Freddy, si, pero desde hace un tiempo GitHub cambio por defecto su rama a “main”
Simplemente, desde Git, debemos cambiar el nombre de nuestra rama “master” a “main”
Como lo hacemos? con git branch -m main
Saludos, ya puedo proseguir con el curso (?
Debido a que en GitHub el HEAD principal se llama Main y en el GitBash se llama Master esto me trajo algunos problemas de compatibilidad siguiendo este Curso.
Por ejemplo, me creo una rama nueva en GitHub llamada Master aparte de la Main. Entonces teniendo en cuanta los cambios que vienen ahora en Octubre busqué como cambiar en el GitBash el Master por Main y ahí se me soluciono todo. Comparto el enlace por si a le sirve a otros estudiantes.
https://help.dreamhost.com/hc/es/articles/4466702078740-Configurar-git-para-usar-main-como-rama-principal
Inicio en GitHub y la fusión con Git
En GitHub seleccionamos New Repository, agregamos un README más una descripción y asignamos un nombre y copiamos la ruta de nuestro repositorio.
En la consola de nuestro proyecto en la rama master primero debemos cambiar el nombre de master a main con el comando
$ git branch -M main
Luego ejecutamos
$ git remote add origin url_repositorio
Con esto le decimos a git que cree un origen remoto de nuestros archivos.
$ git remote -v
El comando anterior lista los objetos remotos con sus respectivas URLs, una para bajar o traer archivos (fetch) y otra para subir o enviar archivos (push).
Antes que todo es necesario realizar un pull al repositorio remoto para enviar todo al repositorio local
$ git pull origin main
Hay archivos que tienen commit en GitHub pero no tienen historia en Git, estos archivos no bajan es necesario utilizar el siguiente comando, esto ocurre para el caso del README
$ git pull origin main --allow-unrelated-histories
Ahora que todo lo del remoto esta en el repositorio local se puede realizar el proceso de pasar nuestra rama master ya denominada main a nuestro repositorio remoto con el comando
$ git push origin main
saludo 😃
Si les aparece el siguiente error: fatal: Need to specify how to reconcile divergent branches.
Usen el siguiente comando: git config pull.rebase false
luego: git pull origin main
y finalmente el comando: git pull origin main --allow-unrelated-histories
espero les ayude porque me salía el error y no podía avanzar como Freddy hasta que pude solucionarlo con esos comandos.
git remote add origin "link del repositorio e github"
git remote -v
Revisa la lista de conexiones existentesgit branch -m master main
Cambia el nombre de la rama master a main, debido a que ahora Github usa el nombre “main”git pull origin main
Traer lo que se encuentra en el servidor remotogit pull origin main --allow-unrelated-histories
en caso de que el paso anterior de haya dado errorgit push origin main
Sube el repositorio local a GithubCOMPARTO EL SIGUIENTE RESUMEN DE LA ÚLTIMA PARTE DE ESTA CLASE:
[git remote add origin <url copied from github>] Subir un proyecto a GitHub
[git remote] vemos (en consola) que hay algo que se llama “origin”
[git remote -v] sea verbal (explícito): indica una dirección url para hacer un “fetch” y otra para hacer un “push”.
[git push origin master] estamos diciendo: “git”, envíele al “origen” la rama “master”. Da el siguiente error:
Esto ocurre porque tenemos que integrar los cambios remotos localmente antes de volver a hacer un push. Para ello podríamos hacer git fetch > git merge o, mejor aún, ejecutamos el comando [git pull origin master]. Dió un mensaje de error diciendo que las dos historias (remota y local) no se encuentran relacionadas. Para solucionarlo ejecutamos el comando [git pull origin master --allow-unrelated-histories]. De esta manera fusionamos lo que tengo en el repositorio remoto con el local. Ahora si me permite hacer el merge con la rama master de mi proyecto (en este caso “Hyperblog”). Hacemos nuevamente [git pull origin master] y todo bien.
Luego voy a GitHub y veo mi proyecto allí. Para comprobar cómo funciona hacer cambios desde GitHub cambio el título en mi archivo “blogpost2.html”, luego hago commit desde la interfaz gráfica de GitHub. Luego regreso a mi consola y ejecuto [git pull origin master] y ¡listo! Me hizo los cambios en mi máquina local.
Traer y subir reporsitorio a GitHub:
Comando para Guardar la URL del Repositorio
git remote add origin ligagithub.
Comando para verificar que la URL este guardada correctamente:
git remote -v (Fecth = traer cosas)(Push = Enviar Cosas)
Comando para traer la version del repositorio remoto:
git fecht
git merge
git pull origin master
git pull origin master --allow-unrelated-histories (Este ultimo es para por si se presentan conflictos)
Guardar cambios del repositorio local a GitHub:
git push origin master
para evitar dolores de cabesa les comparto este comando para que puedan cambiar la rama “master” a “main” permanente mente y no tenga que sufrir y cambiar a cada rato la rama “master” a cada rato
git config --global init.defaultBranch main
denle corazon jajajjaj
Me ha parecido muy aburrida esta clase porque a 2023 el curso está bastante desactualizado, lo cual no he podido seguir esta clase para nada, porque nada de lo que el dice me aplica. por favor actualicen el curso y así no perdemos tanto tiempo
GitHub es el cliente de git más popular, tanto que, se podría decir que es la red social del código, ésto porque te permite tener tus repositorios en la nube, tener un perfil profesional (con los aportes, tus repositorios y demás información de tu vidad de programador) y todo con un núcleo de git por dentro.
.
Como git es un VMS distribuído, entonces el código funciona en diferentes servidores (máquinas), pero para que vinculemos un servidor remoto tenemos que configurar un origen que indique con qué repositorio remoto estaremos trabajando, básicamente es una sintaxis que nos indica que le vamos a poner un pseudónimo a la url de dónde vamos a trabajar.
.
El comando para agregar un orígen remoto es:
git remote add origin <url_repositorio>
Donde:
Ya que agregaste tu servidor remoto origin
puedes jalaro o empujar los cambios, osea sincronizar tu servidor remoto con el local, para eso tenemos 2 comandos
git pull: Jala los cambios del servidor, pero cómo podemos tener configurados diferentes repositorios remotos, tenemos que definir de dónde lo vamos a bajar y qué rama vamos a bajar, para eso podemos utilizar el siguiente comando:
git pull <remoto> <rama>
En el caso de la rama master y el remoto origin:
git pull origin master
Ésto bajará todos los cambios a tu local, pero si de pura casualidad la historia es diferente (el repositorio remoto tiene commits diferentes, puede ser un Readme nuevo) tienes que forzar bajar los cambios con el flag --allow-unrelated-histories
.
git pull origin master --allow-unrelated-histories
git push: Empuja los cambios desde el local al remoto.
git push <remote> <rama>
La sintaxis es la misma que para el pull:
git push origin master
Para aquellos que como yo, están haciendo el curso en abril de 2022 y no encuentran la opción de “Clone or download” para copiar la URL, simplemente hagan clic en la opción “Code” y les aparecerá la URL.
Este curso es tan práctico que de inmediato ya se pueden aplicar los conceptos al día a día
Hola ¿Cómo están?
Les dejo la solución a otro problema que tuve.
Error al mandar el repositorio desde la línea de comandos
En caso de que tengas el F2A activado en tu GitHub de seguro vas a tener el siguiente error al querer hacer un push.
➜ proyecto1 git:(master) git push origin master
Username for 'https://github.com': Mi-usuario
Password for 'https://[email protected]': mi-contraseña
remote: Invalid username or password.
fatal: Autenticación falló para 'https://github.com/repositorio/'
Al momento de poner tu contraseña no te la acepta y no puedes realizar tu push.
Para solucionarlo realizamos lo siguiente:
➜ proyecto1 git:(master) git push origin master
Username for 'https://github.com': Mi-usuario
Password for 'https://[email protected]': mi-token
Espero les sirva. 😄
Hola Comunidad, estuve subiendo mi repositorio a GitHub y todo bien hasta que me apareció un problema de autentificación con Token, creo q hace parte de las ultimas actualizaciones de Git, me parecen muy rigurosas pero esta bien.
Entonces si llegan a tener es inconveniente es fácil, generan el token (aquí les explica como) si están en Windows editan las credenciales copiando el token en el password luego después del “git push” digitan su usario y en el password vuelven a pegar el token
En el grupo 5 de Telegram Road to code junto con @andresbonett, me ayudo a resolver un problema que se presenta ahora con la nueva configuración de GitHub.
“A partir del uno de octubre, los usuarios de GitHub dejarán de ver “master” y en su lugar aparecerá el término “main” (principal / por defecto). De todos modos, este cambio tendrá lugar en los nuevos repositorios.”
Para solucionar gran parte de los problemas se debe generar elmpush de la siguiente manera
PUSH
<git push origin master:main>
PULL
<git pull origin main>
Dejo enlace de la información
Link
Github ha facilitado las cosas con respecto al cambio de master a main, les recomiendo que al iniciar su repositorio local , una vez se les muestre master escribir:
git branch -M main
Cambia el nombre de la rama de master a main. Para hacer pull
git pull origin main
De igual forma, como tip cuando crean el servidor remoto, github les indica que deben hacer, con respecto de master y main
Tengan en cuenta que ahora no se usa MASTER en GIT HUB. Deberían usan MAIN en lugar de MASTER. Por si tienen problemas con el PULL.
$ git pull origin main
$ git pull origin main --allow-unrelated-histories
$ git push origin main
Si esto da error con main:
$ git checkout -b main
Y luego de nuevo:
$ git push origin main
README.md es un archivo en donde puedes explicar qué hace tu código o en qué consiste tu proyecto. Es una buena practica debido a que cuando alguien entre a tu repo de GitHub podrá obtener ese tipo de detalles que le simplificarán muchas cosas ^^
Si deseas hacer un REAME muy entendible puedes utilizar Markdown, que es un lenguaje de marcado y es muy sencillo de aprender, acá dejo el link de su sintaxis: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
Espero que les sirva :3
PASOS PARA USAR GIT
//las barras hacen referencia a los comentarios|
//el archivos ejemplo.txt es un ejemplo de archivo|
//esta barra | sirve para indicar el final de un paso
OTROS COMANDOS IMPORTANTES
#git status //para ver el estado de los archivos |
#git show //para ver los archivos|
#git diff // para comparar versiones de dos archivos|
#rm --cached ejemplo.txt //para remover el archivo de git|
#rm --force ejemplo.txt //para remover el archivo del git y del disco duro|
#git log ejemplo.txt //para ver las diferentes actualizaciones de un archivo|
#git checkout |numero de version| ejemplo.txt //para ver la version vieja de un archivo|
#git checkout master ejemplo.txt //para volver a la version mas reciente|
#git reset --hard //para volver en el tiempo pero borrando todo incluso en staging|
#git reset --soft // para volver en el tiempo sin perder el staging|
#git reset HEAD ejemplo.txt //nos permite sacar un archivo del staging para no enviarlo al git|
#git checkout cabecera //para cambiarse de la rama master a la cabecera|
USAR GITHUB
#git clone url //para traer el repositorio desde el servidor remoto|
#git fetch //para traer los archivos del servidor al repositorio local |
#git merge //para actualizar y fucionar el directorio de trabajo|
#git pull //union de fetch y merge|
#git push //sirve para subir todos los archivos a tu repositorio remoto|
#git remote add origin url //esto sirve para agregar algo a github|
#git pull origin master //para bajar los archivos a tu pc|
#git push origin master //para subir las cosas a github|
#git pull origin master --allow-unrelated-histories //para hacer el merge fusionado lo de tu pc con lo de github|
Estimados,
Para todos los que han tenido el problema que al ejecutar el comando:
$ git push origin main
y no ha pasado nada, independiente de la cantidad de tiempo de espera, les comento que Github ha cambiado sus “medidas de seguridad” por lo que pide pasos extras, les recomiendo realizar lo siguiente:
git_trace=1 git push -v origin main
Espero que les sirva si es que se encuentran en la misma situación.
Dejo la documentación de Credential-Manager Core
Hay un cambio muy importante que tengan presente me paso al intentar hacer el git pull, en el momento que instentava loguearme desde la consola me saltaba este error
Username for 'https://github.com': Password for 'https://braylin16@github.com': remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: Authentication failed for 'https://github.com/Braylin16/thecanario.git/'
y es porque github hizo unos cambios y la contraseña con la que te logueas en la página no es la misma con la que te conectas al repositorio, aqui encontre como solucionarlo. La otra alternativa es que vayas directo al video de como conectarse por ssh.
Porfa dame “Me gusta” a este aporte para que lo posicionen mas arriba y sea de ayuda para los que tienen este problema
antes de hacer: git push origin master, tener en cuenta que ahora en adelante master será main por los cambios en Github, por lo que debemos realizar primero:
git branch -M main, para que la info de master se pase a la nueva rama main, luego si:
git push origin main y seguir con el proceso…
Creo que ya es necesario una actualización del curso jejeje muchos quedaron perdidos con el tema de master - main, sin contar cuando GitHub te pide contraseña en la terminal pero que en realidad no tienes q poner tu contraseña sino un personal access token jajaja y ahi ya son mucho mas pasos!!
Debido al cambio de master a main en Github, realicé los siguientes para subir mi repositorio local a Github:
# Primero: Guardé la URL del repositorio de GitHub
# con el nombre de origin
git remote add origin URL
# Segundo: Estando en la rama master creé una nueva rama llamada main usando -M para copiar toda la historia de master
git branch -M main
# Tercero: Pasé a la rama main
git checkout main
# Cuarto: Eliminé la rama master
git branch -d master
# Quinto: Traje la versión del repositorio remoto e
# hice el merge para crear un commit con los archivos
# de ambas partes.
git pull origin main --allow-unrelated-histories
# Sexto: hice el git push para guardar
# los cambios de mi repositorio local en GitHub:
git push origin main
Para no tener inconvenientes, ya que desde el año 2020 se cambio el nombre de la rama de -master a -main, podemos realizar los siguientes comandos para modificar el nombre la rama:
De esta manera, podemos continuar con el curso, sin la necesidad de confundirnos o que llegue a suceder algún error en Git.
Si les dio un error al hacer el push en el ultimo paso, recuerden que deben cambiar la rama master local por rama main de esta forma
git branch -M main
Despues si deja hacer el push con la cuenta de gitHub.
Hola Platzeros. Acá pueden poner en práctica y visualizar algunos de los comandos más importantes de Git y GitHub, en tiempo real:
http://onlywei.github.io/explain-git-with-d3/#commit
Have fun!
Antes de hacer push tengan en cuenta que master fue renombrada en github como main, entonces antes de hacer push…
git branch -M main
Y después continúen con el video 😃
Para los que tienen problemas desde el 2021 para adelante:
Todo lo que vean con master lo cambian por main (Ya lo explicó en un texto anteriomente)
Si por equivocación le dieron:
git remote add origin "el_enlace"
Lo pueden solucionar utilizando:
git remote remove origin
Para eliminar o remover el enlace con el que se encuentran y de ahí comienzan de nuevo 😃
2021-Junio-27, me enfrente al problema de que no solicitaba las credenciales y no se podia hacer push al repositorio remoto.
Esto despues de investigar y varias pruebas di con lo siguiente y espero les sirva:
Si el comando
git push original main
Simplemente se queda colgado, ejecutenlo asi:
git_trace=1 git push -v origin main
Asi podran ver en que paso se queda, a mi particularmente me paso que se quedaba al obtener las credenciales por lo que tuve que eliminar del archivo config toda la seccion de "Credentials"
Una vez hecho esto, me empezo a aparecer la pantalla solicitando usuario y password para GitHub lo cual me alegro para poder seguir con la practica, pero poserior me llego un correo de parte de GitHub indicando que estaba usando una opcion “Deprecated”, asi que hay que usar su nuevo credential-manager-core.
Si están con Windows y Gitbash, y cuando ejecutan el comando git push origin master, se les queda colgada la instrucción, es debido a que está solicitando el ingreso de la autenticación pero no lo muestra, a mi me funcionó ejecutar el comando desde una terminal diferente a Gitbash en este caso usé Cmder y ahí ya pude continuar con la práctica. Espero sea de ayuda.
Hay algunos cambios en git, creo que el curso merece una actualizacion.
Por ejemplo al traer querer vincular el repositorio local con el remoto me pide darle un nombre, por defecto antes era origin.
Un consejo para evitarnos el problema que tuvo Freddy al vincular el repositorio deGitHub con el local, es que al momento de crear el repo en GitHub lo inicialicemos SIN EL README.md y nos hagamos el hábito de crearlo manualmente en cada uno de nuestros proyectos, así al momento de ejecutar $ git remote
y hacer un $ git push
no nos diga que la historia del remoto es diferente a la del local.
si tuviste conflictos por que en tu proyecto local la rama se llama master y en github se llama main y para evitarse crear de nuevo un repositorio basta con renombrar la rama master a main, esto usando:
git branch -m master main
Luego si se puede hacer:
git push origin main
y listo! 🤘🏽
Resumen de la clase
![](
Si a ustedes no les sale el mensaje de que se tiene que traer los cambios y al intentar hacer el pull les dice que todo está actualizado es porque GitHub cambió su rama por defecto a “main” y nosotros estamos trabajando con la rama master, por tanto GitHub lo está tomando como un pull request (Porque sond iferentes ramas)
Para seguir esta clase deben borrar el repositorio en GitHub (Si ya lo tenían creado) y configurar su rama por defecto como master en:
https://github.com/settings/repositories
En el apartado “Repository default branch” borran main y escriben “master” y le dan al botón de actualizar, después vuelven a crear su repositorio “hyperblog” en GitHub y continuan la clase normal
Para subir nuestro repositorio local al servidor de GitHub primero creamos uno en este. Hay que especificar título, descripción y README (opcional, pero es buena práctica hacerlo).
El README es un archivo que se va a visualizar en el momento que alguien entre a nuestro repositorio de GitHub. En este archivo escribiremos de que trata nuestro repositorio.
El repositorio puede ser público o privado.
Para traer el repositorio local al repositorio remoto vamos a la opcion de “Clone or download” en la página recién creada y elegimos la opción de HTTPS.
Ahora hace falta especificar el origen remoto de nuestros archivos con "git remote add origin master"
Antes de enviarlo primero tenemos que traernos los archivos del repositorio remoto con “git pull origin master” (con el parámetro --allow-unrelated-histories podemos fusionar las historias de los commit de ambas ramas)
Y ahora si, con “git push origin master” podremos finalmente enviar nuestros archivos y cambios al repositorio remoto.
este punto me llamo mucho la atención:
git pull origin [master] --allow-unrelated-histories
Comando que se usa para obligar a GIT a fusionar la historia de un repositorio local con un repositorio remoto. Este comando se ejecuta cuando se requiere conectar por primera vez ambos repos, debido a que al hacer ‘git pull origin master’ aparece el error: “fatal: refusing to merge unrelated histories”.
Compañeros, comparto lo que hice para que funcione todo bajo la rama main. Únicamente hay que cambiar de nombre a nuestro repositorio git de master a main con lo siguiente:
git branch -m master main
Solo basta con ejecutar esto antes de empezar a ver la clase.
Aprovechando todo lo aprendido para hacer un gits en mi cuenta de Github: https://github.com/ldmaroto/git-blog y https://github.com/ldmaroto/ssh-blog
Siempre tenia ese problema con los repositorios cuando les creadaba el readme.
Ahora ya sabre que hacer.
<git pull origin master --allow-unrelated-histories>
Aquí les va mi repo, con las notas. De paso aprendí un poco de MarkDown 😎
Tomar en cuenta que desde octubre del 2020 gitHub llama main al branch por defecto en lugar de master https://github.com/github/renaming
Otro tip importante a tener en cuenta es que si he subido un commit, y lo de modificado en local, puedo forzar a escribir el commit servidor usando
.pub
con el bloc de notas.leomarys casi me mata del susto jajajaj
Me saco un sustote el “Freddy Freddy espera”, quiza Freddy si lo esperaba pero yo no JAJAJ
Asi logre solucionar todos los errores que no aparecieron en la clase, espero les ayude.
Verificamos que aparece origin para hacer fetch y push
git remote -v
Cambiamos el nombre de nuestra rama master a main
git branch -m master main
Hacemos merge
git config pull.rebase false
Traemos los cambios remotos a local
git pull --allow-unrelated-histories origin main
Creamos un token de acceso personal en Git-Hub.
Click perfil -> Settings -> Developer settings -> Personal access tokens -> Generate new token
Git Hub - creating a personal access token
Subir el repositorio local a Git Hub
git push origin main
Quiero comentar algo, que puede ser muy lógico, pero la verdad me saco canas, dure un día y medio haciendo el proceso de Fredy varias veces e investigue por otras fuentes ya que no me dejaba editar el código en el repositorio, no entendía que era, y resulta que Google traduce la página a español automáticamente, en ultima instancia, suponiendo que no tenia nada que ver, se me dio por desautorizar la traducción y “o sorpresa” pude editar el código con normalidad y crear los comit en el repositorio. Siento que debo compartir esto, ya que esto nos ayuda a entender de la importancia de dominar el ingles y trabajar con nuestros dispositivos en este tipo de idioma…
Amigos, les dejo una manera para poder observar todo el historial de commits desde github:
Usando el sitio web de github:
Haga clic en su proyecto
Haga clic en la pestaña 'Insights’
Haga clic en ‘Red’ o 'Network’
Haga clic en el ‘nodo / círculo’ de cada commit para acceder a su información.
Además, puedes arrastrar la línea de commits para visualizarla entera, en caso que hayan muchos y sobrepase el espacio disponible en pantalla.
Por si alguien tiene error con el user and password al realizar <push>.
Genere un token y solucione el problema. Abajo el procedimeinto.
en tu Git hub sigue esta ruta Settings => Developer Settings => Personal Access Token => Generate New Token =>COPIAR el Token generado. (este sera el “password” para subir los cambios desde la terminal)
Sí a ustedes como a mi al momento de hacer ‘push origin master’ ponen su correo y contraseña, pero les arroja un error que dice "Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. ". Lo que tiene que hacer es ir a “Settings->Developer settings->Personal Access Tokens->Generate New Token” y donde dice “note” ahí le ponen un nombre de pa que es ese token y selecionan los persimisos que ustedes requieran y le dan en generar.
Ahora que tienen el token (guardenlo por el amor de dios) ejecutan nuevamente el comando y donde va la constraseña ahí pegan el token y listo.
Bendito curso!
Al momento de agregar mi usuario y contraseña en la terminal, me aparecía error en la autentificación y es que desde 13/08/2021 cambió el sistema de autenticación. Por tal motivo se debe crear un token.
Al principio no entendía mucho, pero fui leyendo y leyendo la doc en inglés y lo pude resolver. Creé mi token por 90 días. Lo guardé en un archivo para que no se me vaya a perder, puesto que dice la documentación que no lo volveré a ver una vez salga de la pag.
Fue un poco frustrante porque no veía nada relacionado en los comentarios del curso. Pero una vez lo hice es muy motivador que me obligué a buscar la info en inglés, leer, comprender y actuar fue demasiado gratificante.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?