Skip to content

Latest commit

 

History

History
 
 

conceptos_git

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Ejercicio

Vamos a describir el estado de un repositorio de git de forma simplificada, tiene 2 partes importantes:

En un repositorio local, además tenemos:

  • el current branch, el branch en el cual estamos trabajando en este momento
  • el staging area
  • el working directory

Hemos empezado a trabajar en un proyecto de git y está en este estado (seguimos la notación de git indicando el current branch con un asterisco). El working tree y el staging area están sin cambios.

ejercicio_git

Preguntas:

Todas las preguntas empiezan con el estado inicial descrito arriba, no son cambios cumulativos.

Los diagramas son svg así que se pueden editar fácilmente con inkscape; hacer un diagrama a mano y subir una foto también es una opción.

Pregunta 0

(Ejemplo) Supongamos que hacemos unos cambios y ejecutamos git commit -m "Better idea":

Cambia el diagrama para representar el nuevo estado del repositorio.

Respuesta 0

NB: hay que inventarse la fecha y el hash:

ejercicio_git_ejemplo

Pregunta 1

Supongamos que tenemos otra idea, así que hacemos otro branch en este punto y cambiamos a este branch:

git branch another-idea
git checkout another-idea

Cambia el diagrama para representar el nuevo estado del repositorio: tanto el grafo de commits como la tabla de branches pueden cambiar.

------------------------------------
| current | branch       | commit  |
------------------------------------
|         | master       | d10d0c9 |
|         | idea         | 1c9a23c |
|    *    | another-idea | 1c9a23c |
------------------------------------



                                   | commit  |      d10d0c9     |
                                   |  date   | 21:01 06-07-2020 |
                                   | message | Fix bug          |

                                                |
                                                |
                                                V

| commit  |      1c9a23c     |     | commit  |      c87343a     |
|  date   | 21:05 06-07-2020 |     |  date   | 20:49 06-07-2020 |
| message | Crazy idea       |     | message | Add readme       |
                        \               /
                         \             /
                          \           /
                           V         V
                     | commit  |      9c33a20     |
                     |  date   | 20:43 06-07-2020 |
                     | message | Initial commit   |

Pregunta 2

Supongamos que hemos decidido integrar los cambios de la rama idea a master, así que cambiamos de rama y ejecutamos un merge:

git checkout master
git merge idea

Cambia el diagrama para representar el nuevo estado del repositorio: tanto el grafo de commits como la tabla de branches pueden cambiar.

------------------------------------
| current | branch       | commit  |
------------------------------------
|    *    | master       | 80cca3c |
|         | idea         | 1c9a23c |
------------------------------------



                              | commit  |      80cca3c     |  
                              |  date   | 21:35 06-07-2020 |  
                              | message | Merge idea       |  
    
                                /           |
                               /            |
                              /             |
                             /              |
                            /               V
                           /       | commit  |      d10d0c9     |
                          /         |  date   | 21:01 06-07-2020 |
                         /          | message | Fix bug          |
                        /
                       /                         |
                      /                          |
                     V                           V

| commit  |      1c9a23c     |     | commit  |      c87343a     |
|  date   | 21:05 06-07-2020 |     |  date   | 20:49 06-07-2020 |
| message | Crazy idea       |     | message | Add readme       |
                        \               /
                         \             /
                          \           /
                           V         V
                     | commit  |      9c33a20     |
                     |  date   | 20:43 06-07-2020 |
                     | message | Initial commit   |

Pregunta 3

Nos hemos bebido un par de botellas de vino y ejecutamos

git reset --hard master

Cambia el diagrama para representar el nuevo estado del repositorio: tanto el grafo de commits como la tabla de branches pueden cambiar.

------------------------------------
| current | branch       | commit  |
------------------------------------
|         | master       | d10d0c9 |
|    *    | idea         | d10d0c9 |
------------------------------------



                                   | commit  |      d10d0c9     |
                                   |  date   | 21:01 06-07-2020 |
                                   | message | Fix bug          |

                                                |
                                                |
                                                V

| commit  |      1c9a23c     |     | commit  |      c87343a     |
|  date   | 21:05 06-07-2020 |     |  date   | 20:49 06-07-2020 |
| message | Crazy idea       |     | message | Add readme       |
                        \               /
                         \             /
                          \           /
                           V         V
                     | commit  |      9c33a20     |
                     |  date   | 20:43 06-07-2020 |
                     | message | Initial commit   |

1c9a23c pasa al orfanarium de los commits