Irving Hernan Taleno
Resumen
Ricardo Celis
Profesorsin duda un gran resume grafico! jajaja
Carlos Andrés Guajardo Sáenz
El mejor resumen de todo el curso jajajaja
Git nunca borra nada, a menos que nosotros se lo indiquemos. Cuando usamos los comandos git merge o git checkout estamos cambiando de rama o creando un nuevo commit, no borrando ramas ni commits (recuerda que puedes borrar commits con git reset y ramas con git branch -d).
Git es muy inteligente y puede resolver algunos conflictos automáticamente: cambios, nuevas líneas, entre otros. Pero algunas veces no sabe cómo resolver estas diferencias, por ejemplo, cuando dos ramas diferentes hacen cambios distintos a una misma línea.
Esto lo conocemos como conflicto y lo podemos resolver manualmente. Solo debemos hacer el merge, ir a nuestro editor de código y elegir si queremos quedarnos con alguna de estas dos versiones o algo diferente. Algunos editores de código como Visual Studio Code nos ayudan a resolver estos conflictos sin necesidad de borrar o escribir líneas de texto, basta con hacer clic en un botón y guardar el archivo.
Recuerda que siempre debemos crear un nuevo commit para aplicar los cambios del merge. Si Git puede resolver el conflicto, hará commit automáticamente. Pero, en caso de no pueda resolverlo, debemos solucionarlo y hacer el commit.
Los archivos con conflictos por el comando git merge entran en un nuevo estado que conocemos como Unmerged. Funcionan muy parecido a los archivos en estado Unstaged, algo así como un estado intermedio entre Untracked y Unstaged. Solo debemos ejecutar git add para pasarlos al área de staging y git commit para aplicar los cambios en el repositorio.
Cómo revertir un merge
Si nos hemos equivocado y queremos cancelar el merge, debemos usar el siguiente comando:
git merge --abort
Conflictos en repositorios remotos
Al trabajar con otras personas, es necesario utilizar un repositorio remoto.
-Para copiar el repositorio remoto al directorio de trabajo local, se utiliza el comando git clone <url>, y para enviar cambios al repositorio remoto se utiliza git push.
-Para actualizar el repositorio local se hace uso del comando git fetch, luego se debe fusionar los datos traídos con los locales usando git merge.
git pull.
- Para crear commits rápidamente, fusionando git add y git commit -m "", usamos git commit -am "".
- Para generar nuevas ramas, hay que posicionarse sobre la rama que se desea copiar y utilizar el comando git branch <nombre>.git checkout <branch>
- Una vez realizado los cambios en la rama, estas deben fusionarse con git merge.Repasa qué es un branch
Aporte creado por: José Tuzinkievicz, Lottie
Irving Hernan Taleno
Resumen
Ricardo Celis
Profesorsin duda un gran resume grafico! jajaja
Carlos Andrés Guajardo Sáenz
El mejor resumen de todo el curso jajajaja
José Tuzinkievicz
Encontré una extensión de VSCode que me pareció práctica para la visualización de ramas y realizar acciones. GIT Graph
Julio Renteria
esta chido! gracias por compartir
Ezequiel Maximiliano Silvestre
Genial
Jimmy Loloy Laurencio
Resumen de la clase anterior... xD
Danilo Fernandez
Muerto de la risa. Genial.
Fabiola Jessica Huancollo Chambi
bonito gráfico :) xD
Angelo Paul Yenque Tume
Apuntes!
Tecnologia Mesfix
Excelente! Donde hiciste los apuntes...?
Pablo Perez Lee
Muy buenos apuntes, gracias!
Matias Alejandro Lopez Heredia
Mariana Lamus
Gracias, muy buen dato!
Edison Manrique
Genial aporte! Solo como una pequeña correción, cuando dices:
"El --amend “suma” al commit anterior el nuevo contenido en el staging area."
Realmente no es del todo correcto, pues recordemos que los commits no están en Stage, sino en el repositorio. Entonces la frase correcta sería:
"El --amend “suma” al commit anterior el nuevo contenido en el repositorio local."
Nicolas Esteban Prieto Sarmiento
Lo que pensaba de los conflictos
No es broma*
Gracias a este curso ahora puedo ver que esto no es un problema
JUAN SEBASTIAN RODRIGUEZ JIMENEZ
jajajajaja
Juan Christopher
Lol... JAJA
José Tuzinkievicz
Para revertir un merge:
git merge --abort
Diego Rubio
:o coooool gracias
Thomas André Dale Guevara
:0
Luis Antonio Arce Paredes
Un día me salieron 54 conflictos en el mismo archivo... fue un largo día.
Diego Rubio
:o y a las 5:50 de la tarde cuando estabas a 10 minutos de salir del trabajo ahahhahahahhahhahah
Sergio Arturo Mata Contreras
Gajes del oficio
Sergio Luis Padilla Villaseñor
Si despues tienen mas ramas y no sabe como va su proyecto pueden usar GitKraken, es como un visor grafico de git Bash y hasta puedes hacer todo lo que haces en la linea de comandos aqui
Jhon Carlos Colorado Angulo
Está genial pero solo lo utilizaré para ver gráficamente las ramas, porque es mejor trabajar desde la linea de comando.
Hersson Guerrero Amésquita
Estuve viendo el preview de esta herramienta, se ve genial, pero no es muy pesada para el trabajo con grandes repos? lo pregunto por los efectos gráficos que tiene.
Cristian Blandon
jonathan gonzalez
Estan super geniales esos atajos. saludos!
Harrinson Quintero
Gracias por la información 👍🏻👍🏻
Erick Ruiz Vazquez
Juan Carlos Herrera Blandón
Genial
Leonard L
👍
Johan Garzon
El problema que aparece en el minuto 07:50 no es realmente que el profesor haya hecho click en el lugar incorrecto. Lo que ocurrió fue que el archivo blogpost.html no fue guardado despues de haber arreglado los conflictos.
Max Andy Diaz Neyra
exactamente
Miguel Nava
En la clase anterior me salió un conflicto y entré en pánico. Ahora ya estoy con un pánico informado. Gracias!!
Deniss Bonilla Paredes
x2
Martin Sebastian Tito Gira
Solo ella causo conflictos en mi vida :'(
Wilson Alexander Caal Pacay
jajajaj lo mismo digo amigo :c
Kevin Salazar
Boooo!, dale git merge --abort ;D-
Cristina Rueda
Los dioses del desarrollo me fallaron desde la clase anterior, pero mantuve la calma y con lo visto en esta clase, solucioné el conflicto. ¡Genial!
Henry Alexander Velásquez Rosas
Kevin Isaac Rodriguez
Excelente aporte!
David Jesus Palma Lugo
Diana Milena Rojas Borda
git reset -------------- borrar commits git branch -d --------- borrar ramas git rm ------------------ borrar archivos
Diana Carolina Torres Castaño
genial. Gracias
Diana Carolina Torres Castaño
genial, gracias
Ricardo Rito Anguiano
Para confirmar, al generarse un conflicto, este se soluciona escogiendo la parte que SI quieres y borrando la parte que NO quieres. Posteriormente a ellos hacemos un commit y con este commit finalizamos el merge ¿Estoy en lo correcto?
Sergio Rubiano
Hola Ricardo!
Si, y puedes volver a parte que no quieres en algún momento :D
Sebastian Pedroza
Gracias por preguntar tenia la misma duda :)
Hasta los mejores cometen errores, pero todo tiene solución.
Freddy se olvidó de guardar el archivo .html, y lo malo es que commiteó ese archivo todavia con el merge conflict. Con los:
<<<<<<< HEAD ======= >>>>>>> cabecera
Si les pasa esto, no entren en pánico, mientras el commit siga en nuestro repositorio local. Tienen dos formas al menos de solucionarlo, uds eligen la que mas les convenga:
git add . git commit --amend
El --amend "suma" al commit anterior el nuevo contenido en el staging area. Asi que no se está creando un nuevo commit, si no reemplazando el último.
git reset HEAD~1 --soft
y luego guardar el archivo y volver a hacer el commit (ya que esta vez con el reset si borraron el commit con el fallo).
Practiquenlo!, creanme que commit --amend resulta bastante útil, más de una vez habré commiteado algo, y luego me doy cuenta que me faltó algo, o algo está mal, y en vez de armar otro commit arreglando el error, podemos reemplazarlo con amend.
Espero les sirva :).
¡Hola! Comparto algunos comandos que están en el libro Pro Git, que me parecieron de mucha utilidad:
git checkout –b // creará una nueva rama y saltará a ella de forma inmediata git branch --list // listará las ramas existentes git branch --delete [nombreRama] // borrará la rama que se indique git branch –D [nombreRama] // fuerza la eliminación de ramas que aún no han sido fusionadas git branch –v // muestra el último commit de cada rama git branch --merged // lista las ramas que se fusionaron con la rama actual git branch --no-merged // lista las ramas que no se han fusionado con la rama actual git merge --abort // anula el merge y devuelve todo a como estaba antes
¡Saludos!