# Herramientas de Git y personalización

#### **Objetivo:** <a href="#toc_1" id="toc_1"></a>

* Creación de etiquetas en commits con el objetivo de mantener un mejor orden en el historial del repositorio.
* Creación de Alias con la finalidad de adecuar Git a las necesidades diarias del usuario
* Reordenamiento de commits con el comando git rebase y uso de la herramienta interactiva

#### Instrucciones: <a href="#toc_2" id="toc_2"></a>

Leer y analizar los recursos listados a continuación.Se recomienda ver el video indicado por cada enlace.

#### Etiquetado <a href="#toc_3" id="toc_3"></a>

Como muchos VCS, Git tiene la posibilidad de [etiquetar puntos específicos del historial (video tutorial 6:47)](https://www.youtube.com/watch?v=5DkX3HFgklM) como importantes. Esta funcionalidad se usa típicamente para marcar versiones de lanzamiento (v1.0, por ejemplo).

**Listar Tus Etiquetas**

Listar las etiquetas disponibles en Git es sencillo. Simplemente escribe el comando `git tag`.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKRD9sSHkZcJZtNEZ%2Fimage.png?alt=media\&token=25621127-d83d-4ffa-80e3-07311492ec27)

Por defecto Git no tiene ninguna etiqueta creada, por lo cual será necesario crearlas, git utiliza dos tipos principales de etiquetas: ligeras y anotadas.

Una etiqueta ligera es muy parecida a una rama que no cambia, simplemente es un puntero a un **commit** en específico.

Sin embargo, las etiquetas anotadas se guardan en la base de datos de Git como objetos enteros.

**Etiquetas Anotadas**

Para crear una etiqueta anotada es sencillo, solo debemos especificar con -a al momento de utilizar el comando [git tag (video tutorial 8:59)](https://www.youtube.com/watch?v=h145ORRg7Ao), por ejemplo:

`git tag -a v1.0 -m 'Primera Versión del Proyecto'`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKV7aQBtszaK6B0ue%2Fimage.png?alt=media\&token=dd3ab583-c129-4b85-80f6-a1fb833ebfa9)

La opción **-m** especifica el mensaje de la etiqueta como si se tratara de un commit, en caso no que especificaremos este comando se nos abrirá el editor de vim, para solicitarnos escribir dicho mensaje.

Para ver la información de la etiqueta usaremos el comando **git show**, que nos mostrará la fecha en la que el commit fue etiquetado y el mensaje de la etiqueta.

`git show v1.0`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKXcT9EivMK9mcZVe%2Fimage.png?alt=media\&token=ff9aadb7-0589-48c9-9051-98c1717bcb03)

**Etiquetas ligeras**

La otra forma de etiquetas un **commit** es por medio de etiquetas ligeras. Una etiqueta ligera no es más que invocar el comando **git tag** sin argumentos -a, -s, -m; por ejemplo:

`git tag v1.1`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKZhnBa5tA-5ZKd2K%2Fimage.png?alt=media\&token=3cf0d594-2452-4d5c-ad97-8f6b8c1334f8)

En este caso si invocamos el comando \*\*git show \*\* nos mostrará únicamente el commit en el que realizamos la etiqueta sin ningún mensaje adicional.

`git show v1.1`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKacjW7yxvDOG4hp3%2Fimage.png?alt=media\&token=30cb2494-b9b2-4c89-a0a0-f8fca6c51580)

**Etiquetado Tardío**

Por defecto git tag funciona en el último commit realizado, pero en ocasiones es necesario crear etiquetas para commits que se realizaron tiempo atrás , mostraremos nuestra lista de commits con `git log`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKdErxUGAHUgLIUEu%2Fimage.png?alt=media\&token=956abea3-24cb-445b-855e-ec3505118fc6)

Supongamos que queremos realizar una etiqueta en nuestro primer commit del historial, el cual corresponde al commit "Mi primer commit en Git", lo que debemos realizar a continuación es copiar los primeros 8 dígitos del commit, en este caso **fb369974** y agregarlos al final de nuestra etiqueta, por ejemplo:

`git tag -a v0.1 -m "Versión Alfa" fb369974`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKfi9GG3oGpu8G-8o%2Fimage.png?alt=media\&token=dd254bdf-a3a0-4b7a-8924-1c8eb654fd78)

Realizaremos un listado con `git tag` y mostraremos el contenido de la etiqueta v0.1 con `git show v0.1`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKiDxZjBMZ9CoKOC7%2Fimage.png?alt=media\&token=b8cc089b-f1d2-4ef9-93ed-178d72b52703)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKlIucG5BwoHpEtVc%2Fimage.png?alt=media\&token=33032456-8e3b-48df-b2e3-b89f8e228a72)

#### Alias de Git <a href="#toc_8" id="toc_8"></a>

Una gran utilidad de Git es la [creación de Alias (video tutorial 6:46)](https://www.youtube.com/watch?v=wNk1k6tsXM4), ya que como podrás notar existen diversos comando de git que se vuelven recurrentes pero también pueden llegar a ser algo complejos, como es el caso de **git log --oneline --decorate --graph --all**.

En caso de que no quieras teclear el nombre completo de cada cada comando se pueden crear Alias o atajos con el comando **git config --global alias.\[nombre del alias] \[comando]**

Por ejemplo para no escribir completo el comando branch el alias lo creariamos de la siguiente manera:

`git config --global alias.br branch`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKoh8MRiM2DZcsagk%2Fimage.png?alt=media\&token=0fe8585d-bc51-4282-a2b0-d49ea7bb2668)

Lo que nos dará como resultado la posibilidad de invocar el comando branch tecleando únicamente `git br`.

En el caso del comando **git log --oneline --decorate --graph --all**, crearemos el Alias de la siguiente manera.

`git config --global alias.graph 'log --oneline --decorate --graph --all'`, logrando invocar el comando únicamente con `git graph`.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKrG1n3IuXvTR89HP%2Fimage.png?alt=media\&token=9a0fb087-ff51-4bd3-95be-83b7263976ce)

#### Reescribiendo la Historia <a href="#toc_9" id="toc_9"></a>

Muchas veces, al trabajar con Git, vas a querer confirmar tu historia por alguna razón. Una de las grandes cualidades de Git es que te permite tomar decisiones en el último momento.

Lo que no es recomendables es crear cambios sobre commits que ya fueron compartidos con el comando \*\*git push \*\*de manera distribuida, pero si aún se encuentran de manera local no genera ningún problema.

Git cuenta con una herramienta interactiva con el comando **git rebase -i**.

**Cambiando la confirmación de múltiples mensajes**

Para modificar una confirmación que está más atrás en tu historia, deberás aplicar herramientas más complejas Git no tiene una herramienta para modificar la historia, pero puedes usar la herramienta de rebase para rebasar ciertas series de confirmaciones en el HEAD en el que se basaron originalmente en lugar de moverlas a otro. Con la herramienta interactiva del rebase, puedes parar justo después de cada confirmación que quieras modificar y cambiar su mensaje, añadir archivos, o hacer cualquier cosa que quieras Puedes ejecutar el rebase interactivamente agregando el comando -i a [git rebase (video tutorial 5:43).](https://www.youtube.com/watch?v=0_QwiNnj_dA\&list=PLTd5ehIj0goMCnj6V5NdzSIHBgrIXckGU\&index=23)

Para realizar un ejemplo práctico, vamos a realizar 4 commits diferentes sobre el archivo **index.html**, por medio del comando **vim** vamos a generar 4 líneas de código, pero guardando y realizando un commit por cada línea creada.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcKwVKKJiv-M5VzITr%2Fimage.png?alt=media\&token=4e4e409b-81b1-4c68-bfd5-b600287e8765)

Crearemos un pequeño error en el primer commit y segundo commit, invirtiendo los nombres de orden:

```
git add -a

git commit -am "Segundo commit"
```

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcL4dsog-zqxdP6PN_%2Fimage.png?alt=media\&token=5933be0c-d8a7-46cd-8116-a39c7677d17d)

```
git add -a

git commit -am "Primer commit"
```

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcL9TIB2ZJh128S0w-%2Fimage.png?alt=media\&token=cf7de447-ffe1-428b-9501-ba9ebc2b92fd)

Mantendremos el tercer y cuarto commit de forma correcta, quedando nuestro index.html de la siguiente manera:

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLBUtAed87zTvAqLE%2Fimage.png?alt=media\&token=65fea77f-364c-42e9-b9c7-8b03b7ec5632)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLDWilZGp1hhWImFz%2Fimage.png?alt=media\&token=0b8988e0-fd9c-45aa-9eb7-e5534f780042)

Si utilizamos el comando `git graph`, los visualizamos de la forma actual donde existe el error generado.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLFWjpFIrtTV3apII%2Fimage.png?alt=media\&token=682cd871-4f84-4062-8c61-0da5ad5a16dd)

En este caso para indicar a git que queremos trabajar con los últimos 4 commits utilizaremos el comando **git rebase -i HEAD\~\[numero de commits]**; por ejemplo:

`git rebase -i HEAD~4`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLHOHUyi51MOP567b%2Fimage.png?alt=media\&token=08ac9477-ff08-4ec7-b955-add2afd4138a)

El comando nos desplegó una interfaz donde podremos seleccionar que deseamos realizar. En este caso usaremos la palabra edit para cambiar los mensajes de los commits equivocados de la siguiente manera:

```
reword 2c8b089 Primer commit
reword 1446584 Segundo commit
pick 005ad7f Tercer commit
pick 96f9a92 Cuarto commit

```

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLMymHwjND4icn__X%2Fimage.png?alt=media\&token=59f7fc5d-3c39-4306-a100-c7f82efc4b88)

Guardaremos los cambios y Git realizará el **rebase**. Nos pedirá que confirmamos los cambios.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLPdUoPJwAc7_uLkc%2Fimage.png?alt=media\&token=726580f3-74f3-4f94-be5e-df8f2abfa096)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLRBJZhTdNAHG4B53%2Fimage.png?alt=media\&token=5d856218-9d59-4caa-a929-ecc27a2d1c39)

Una vez realizada las confirmaciones en **vim**, se nos desplegará el siguiente mensaje donde nos indica que los cambios fueron realizados.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLSmPlyUPgxRoXUF0%2Fimage.png?alt=media\&token=010239cb-0bef-480e-b988-35b5c612e1a9)

Revisamos el historial con `git graph` y lograremos notar que los mensajes de los commits, se encuentran ahora de la forma correcta.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLUNVUOJux1LOll8p%2Fimage.png?alt=media\&token=13e4a471-e5b2-4c8e-a797-84ed30593fa4)

**Reordenando Confirmaciones**

Si el orden de los mensajes no fuera el equivocado y realmente quisiéramos cambiar el orden en que se realizaron los commits, podemos hacerlo modificando el orden en que nos muestra la consola de **vim** los commits que solicitamos cambiar por medio de **git rebase -i HEAD\~**

`git rebase -i HEAD~4`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLW77hoB2CRRXJKPg%2Fimage.png?alt=media\&token=a9b411f2-68eb-4066-b476-34014fd7ac73)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLXSUzywMEgve4vXg%2Fimage.png?alt=media\&token=65b7900c-e3f7-46cb-9b24-29ead825fbf4)

Cambiaremos el orden de:

```
pick d7d400b Primer commit
pick 3a883a9 Segundo commit
pick 9fe6fd1 Tercer commit
pick f06691c Cuarto commit
```

Al siguiente orden:

```
pick f06691c Cuarto commit
pick 9fe6fd1 Tercer commit
pick 3a883a9 Segundo commit
pick d7d400b Primer commit
```

Guardaremos los cambios con **esc** + **:x**

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLaivURM5TWkbw6Hp%2Fimage.png?alt=media\&token=01584e39-8b49-44c9-bc2a-22751ca4627d)

En este caso como los 4 commits se realizaron sobre el mismo archivo de forma secuencial nos va generar un error.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLeb-EtuX1PCKc2Ft%2Fimage.png?alt=media\&token=e1c54c18-cd59-454b-8782-4cdd06df5081)

El cual para solucionar deberemos ingresar el comando `git add index.html` seguido por el comando `git commit`, esto nos desplegara una ventana de vim donde nos pedirá confirmar dichos cambios, tecleamos **esc + :q**

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLhXGCKifoRirz6Tq%2Fimage.png?alt=media\&token=a7a3c93d-b55f-4fb0-936a-d16468d2775d)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLjMurecjOxjsT4s7%2Fimage.png?alt=media\&token=76e00194-5bca-421e-96c5-6d96bb21af46)

Para continuar solucionando el problema tendremos que usar el comando `git rebase --continue`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLl7D4odaQOhIN-wu%2Fimage.png?alt=media\&token=9c64e4df-e7af-4d3d-b9c3-9c96de39c1b8)

Debemos agregar nuevamente los comandos

```
git add index.html

git commit
```

Guardamos los cambios con **esc + :q**

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLnH1luF1Rt9QtIxI%2Fimage.png?alt=media\&token=2edbd297-8bda-4d06-a28e-d08b69cb5afc)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLop-ZtyyaRl1h0rx%2Fimage.png?alt=media\&token=8c6b9583-3147-413d-a672-81961d8fe7e0)

Tendremos que iterar los mismos pasos;

```
git rebase --continue

git add index.html

git commit
```

Guardamos los cambios con **esc + :q**

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLsI1T7U75fBMMCtl%2Fimage.png?alt=media\&token=dda24f1a-0aac-4858-b910-eb15ca0fcecf)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLue1295u2kUgDi4w%2Fimage.png?alt=media\&token=4401fccc-2eaa-4952-a1c5-5a4e951cfde4)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLw4ty6puf7ESaGR-%2Fimage.png?alt=media\&token=467d4693-5c16-43de-a0cf-dabe83510f47)

Realizaremos una última vez la misma operación:

```
git rebase --continue

git add index.html

git commit
```

Guardamos los cambios con **esc + :q**

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcLyoV56kRkkKwQgYn%2Fimage.png?alt=media\&token=84dc5c38-fbd8-4fc3-a5a1-bd2c571e02f8)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcM-rMC48KvZjkkWcl%2Fimage.png?alt=media\&token=828cc668-6a56-4ade-b1f6-4ad11a44cf33)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcM1nU-9qgFXQfYuJM%2Fimage.png?alt=media\&token=45bec14a-b470-48d8-810d-7241b1c5d8c1)

Una vez iterado en las cuatro ocasiones, nos desplegará un mensaje que el **rebase** fue realizado con éxito y podremos visualizar los cambios con el comando `git graph`

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcM3U8vPmDgozVOxKm%2Fimage.png?alt=media\&token=bfce9690-d39a-4031-918e-3ba016bbdad7)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcM5LdAMzNzd764fKO%2Fimage.png?alt=media\&token=a7960316-15fa-46c0-bc96-a6a3d4a03430)

**Unir confirmaciones**

También es posible el tomar series de confirmaciones y unirlas todas en una sola confirmación con la herramienta interactiva de **rebase**. El script pone las instrucciones en el mensaje de rebase:

Para unificar los últimos 4 commits en uno solo usaremos el comando.

`git rebase -i HEAD~4`

En **vim** realizaremos el siguiente cambio

```
pick 8bd4cf9 Cuarto commit
squash e4a0d4e Tercer commit
squash d357720 Segundo commit
squash d8c6d9b Primer commit
```

Guardamos los cambios con **esc + :x**

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcM8vEbsBApZBhDdFM%2Fimage.png?alt=media\&token=722e4905-3346-46e9-8dfd-5f1445939b45)

Nos pedirá escribamos un mensaje con el cual relacionamos el único commit.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcMAWoa-_uR0JthLUJ%2Fimage.png?alt=media\&token=a9e81a6a-371a-4cf8-8c17-c7bf7fb3c55e)

Cambiaremos todo el mensaje por un único mensaje: por ejemplo:

```
Cambio General
```

Guardamos el cambio con **esc + :x**

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcMCHNZrEGsClzlZTx%2Fimage.png?alt=media\&token=0ac05c9e-02c8-4c4c-8072-354ab40a4769)

Visualizamos que el **rebase** fue hecho con éxito y desplegamos los cambios con `git graph` donde notaremos que existe un único commit.

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcMDu21zXYp8maKX5I%2Fimage.png?alt=media\&token=18443900-95cc-4773-8e8d-52076861e5a1)

![](https://2061832913-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MAbhnzgrbWeDywwzDL3%2F-MAcK1U6sSsHcswoN3-i%2F-MAcML8ShsgX2knbnZE9%2Fimage.png?alt=media\&token=c087a531-020c-43a1-bfaa-12ce629e8078)
