Introducción
🧑💻 ¿Nuevo en Git o LabEx? Te recomendamos comenzar con el curso Quick Start with Git.
Git es un sistema de control de versiones poderoso que permite a los desarrolladores colaborar eficientemente en proyectos. Una de las características de Git es la fusión en adelantamiento rápido, que permite a Git fusionar automáticamente ramas que no tienen commits divergentes. Sin embargo, esta característica a veces puede causar problemas, especialmente cuando se trabaja en proyectos más grandes con múltiples colaboradores. En este laboratorio, aprenderás cómo deshabilitar la fusión en adelantamiento rápido por defecto.
Deshabilitar la fusión en adelantamiento rápido
Por defecto, Git utiliza la fusión en adelantamiento rápido para fusionar ramas que no tienen commits divergentes. Esto significa que si tienes una rama sin nuevos commits, Git simplemente moverá el puntero de la rama en la que estás fusionando al último commit de la rama de la que estás fusionando. Si bien esto puede ser útil en algunos casos, también puede causar problemas, especialmente cuando se trabaja en proyectos más grandes con múltiples colaboradores. Por ejemplo, si dos desarrolladores están trabajando en la misma rama y ambos realizan cambios, la fusión en adelantamiento rápido puede causar conflictos que son difíciles de resolver.
Para deshabilitar la fusión en adelantamiento rápido, usemos el repositorio de https://github.com/labex-labs/git-playground.
- Clona el repositorio, navega hasta el directorio y configura la identidad:
git clone https://github.com/labex-labs/git-playground
cd git-playground
git config --global user.name "tu-nombre-de-usuario"
git config --global user.email "tu-correo-electrónico"
- Crea y cambia a una rama llamada
my-branch, crea un archivohello.txty agrega "hello,world" a él, agréguelo al área de preparación y confírmalo con el mensaje "Agregado hello.txt":
git checkout -b my-branch
echo "hello,world" > hello.txt
git add.
git commit -m "Agregado hello.txt"
- Ejecuta el siguiente comando para deshabilitar la fusión en adelantamiento rápido:
git config --add merge.ff false
Esto deshabilitará la fusión en adelantamiento rápido para todas las ramas, incluso si es posible. Puedes usar la bandera --global para configurar esta opción globalmente:
git config --global --add merge.ff false
- Vuelve a la rama
mastery fusiona la ramamy-branch, guarda y sale sin cambiar el texto:
git checkout master
git merge my-branch
Ahora, Git siempre creará un commit de fusión, incluso si es posible hacer un adelanto rápido:
commit 6e17a776ab51a89ace069614b0caf1c07915a92c (HEAD -> master)
Merge: ec5ea6d 6d7de91
Author: xiaoshengyunan <@users.noreply.github.com>
Date: Mon Jul 17 13:30:44 2023 +0800
Merge branch'my-branch'
Resumen
En este laboratorio, aprendiste cómo deshabilitar la fusión en adelantamiento rápido por defecto. Esto puede ser útil cuando se trabaja en proyectos más grandes con múltiples colaboradores, ya que puede ayudar a prevenir conflictos y facilitar la gestión de cambios. Al usar el comando git config, puedes deshabilitar la fusión en adelantamiento rápido para todas las ramas, incluso si es posible.