Skip to content

ajuancer/using-git

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Usando git

Jugando con una única rama

Creo un archivo y hago commit en la rama principal. Hago lo mismo para añadir un archivo B. Creo una rama otra en la que creo un archivo C y hago un par de commits. Después hago un checkout a la principal y hago un merge. Entonces la cosa queda así:

* 71ce0a4 (HEAD -> main, otra) update again archivoC
* aec7766 update archivoC
* 7ea40fe add archivoC
* eadfa86 add archivoB
* d37b306 add archivoA

Muchos commits, mucha confusion

Creo otra rama, otra-mas y creo un archivo D. Hago, igual que con el C, varios commits:

* 875d6ce (HEAD -> otra-mas) a lot of noise
* c11a84f more more noise
* 460171c more noise
* 0ef2bfe update again archivoD
* a6eb02a update archivoD
* ee79625 update archivoD
* 57cbfc4 add archivoD
* 71ce0a4 (otra, main) update again archivoC
* aec7766 update archivoC
* 7ea40fe add archivoC
* eadfa86 add archivoB
* d37b306 add archivoA

Ahora vamos a hacer una comparación con la rama principal con git rebase -i main. Añado i para hacerlo de manera interactiva. Actualizo a lo siguiente:

pick 57cbfc4 add archivoD
squash ee79625 update archivoD
squash a6eb02a update archivoD
squash 0ef2bfe update again archivoD
squash 460171c more noise
squash c11a84f more more noise
squash 875d6ce a lot of noise

Para fusionar los commits con squash e incluirlos en el que señalo como pick. Así, el arbol queda sencillamente cómo:

* 8b35b1d (HEAD -> otra-mas) añadir archivoD y otras movidas
* 71ce0a4 (otra, main) update again archivoC
* aec7766 update archivoC
* 7ea40fe add archivoC
* eadfa86 add archivoB

Es decir, he fusionado todos los commits de la rama otra-mas en uno solo (''añadir archivoD y otras movidas'').

Finalmente cambio a la rama principal y hago merge:

* 8b35b1d (HEAD -> main, otra-mas) añadir archivoD y otras movidas
* 71ce0a4 (otra) update again archivoC
* aec7766 update archivoC
* 7ea40fe add archivoC
* eadfa86 add archivoB

Películas en la vida real

Para usar rebase, creamos una rama regreso-al-futuro y después, siguiendo en la principal, hago un commit. Así es la situación vista desde main:

* 465e237 (HEAD -> main) adiós archivoA
* 8b35b1d (regreso-al-futuro, otra-mas) añadir archivoD y otras movidas
* 71ce0a4 (otra) update again archivoC
* aec7766 update archivoC
* 7ea40fe add archivoC
* eadfa86 add archivoB
* d37b306 add archivoA

Ahora hago un par de commits desde la rama de regreso-al-futuro, quedando así:

* 465e237 (HEAD -> main) adiós archivoA
* 8b35b1d (regreso-al-futuro, otra-mas) añadir archivoD y otras movidas
* 71ce0a4 (otra) update again archivoC
* aec7766 update archivoC
* 7ea40fe add archivoC
* eadfa86 add archivoB
* d37b306 add archivoA

Hacemos el rebase respecto de main, con rebase main. Vemos que ahora aparecen los commits hechos en esta rama de regreso al futuro después de eliminar el archivo A, que habíamos hecho después de nuestros cambios. Finalmente hacemos commit en la rama principal, quedando así:

* e1dd86f (HEAD -> main, regreso-al-futuro) actualizar again archivoE
* 76b65a4 update archivoE
* 2d4601f añadir archivoE
* 465e237 adiós archivoA
* 8b35b1d (otra-mas) añadir archivoD y otras movidas
* 71ce0a4 (otra) update again archivoC
* aec7766 update archivoC
* 7ea40fe add archivoC
* eadfa86 add archivoB
* d37b306 add archivoA

Y así demuestro que sé usar git.

About

Repositorio para mostrar como usar git.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published