Identificar el ancestro común reciente para dos ramas en Git
Este artículo ilustra cómo podemos encontrar la confirmación de ancestro común reciente en Git. Esto es útil cuando crea o fusiona una rama con otra.
Sin más preámbulos, saltemos a la agenda de hoy.
Identificar el ancestro común reciente para dos ramas en Git
¿Qué es un ancestro común para dos ramas en Git?
Hecha un vistazo a la imagen de abajo.
En la imagen de arriba, tenemos la rama principal
donde hemos creado una rama característica
y una rama nueva función
a partir de la rama característica
. Eliminemos la rama main
y centrémonos en las ramas feature
y new-feature
.
Podemos ver que creamos la rama nueva función
después de la confirmación bd9172c
. Como habrás adivinado, el compromiso bd9172c
es nuestro ancestro común reciente para las ramas característica
y principal
.
Entonces, ¿cómo encontramos el ancestro común reciente para las dos ramas?
Todo lo que necesitas es el comando git merge-base
. De la documentación de Git, el comando git merge-base
nos ayuda a encontrar el mejor ancestro común para un git merge
.
Sin embargo, podemos introducir dos ramas como argumento para mostrar el ancestro común más reciente para las ramas proporcionadas.
Sintaxis:
$ git merge-base <Branch 1> <Branch 2>
Veamos un ejemplo.
El siguiente ejemplo muestra las ramas master
y feature
de nuestro repositorio local. Para encontrar el ancestro común entre los dos, ejecutaremos el comando git merge-base
, como se muestra a continuación.
$ git merge-base master feature
Este comando debe mostrar el hash de confirmación para el ancestro común.
Producción:
Podemos usar el siguiente comando para un registro visual.
$ git log --graph --oneline --all --decorate
Deberías obtener algo como esto:
Podemos ver que nuestra rama característica
se bifurcó del maestro
en la confirmación 2dbe38d
, que es el mismo hash de confirmación que obtuvimos al ejecutar el comando git merge-base
anteriormente.
Puede encontrar la confirmación de ancestro común más reciente para dos ramas en Git usando el comando git merge-base
mientras alimenta las ramas en cuestión. Tenga en cuenta que este comando solo obtiene el ancestro común más reciente.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn