Copiar cambios de una rama a otra en Git
Este artículo analiza dos métodos que podemos usar para copiar cambios de una rama a otra en Git.
Copiar cambios de una rama a otra en Git
Estamos demasiado familiarizados con el comando git merge
. Podemos usarlo para fusionar dos ramas en una.
Este comando también puede ser un método para copiar cambios de una rama a otra. Sin embargo, solo podemos usarlo si queremos copiar todos los cambios de una rama.
Supongamos que tenemos una rama Master
en nuestro repositorio. Desde nuestra rama Master
, creamos una nueva rama llamada Dev2.1
.
Por supuesto, nuestra nueva rama heredará todas las confirmaciones en la rama Maestra
. Luego comenzaremos a desarrollar en nuestra rama Dev2.1
.
Para copiar todos los cambios de nuestra rama Dev2.1
a nuestra rama Maestra
, podemos fusionar las dos como se muestra a continuación.
Primero, tenemos que pasar por caja a la sucursal Master
.
Dominio:
$ git checkout Master
Ahora podemos fusionar Dev2.1
con la rama Master
.
Dominio:
$ git merge Dev2.1
Es posible que obtenga conflictos de fusión y que tenga que resolverlos manualmente para completar la fusión.
Supongamos que queremos copiar cambios específicos a la rama Maestro
. Haremos algunas confirmaciones en nuestra rama Dev2.1
para que esté por delante de nuestra rama Maestra
e intentaremos copiar una confirmación.
Aquí hay una comparación entre nuestras sucursales.
Del resultado anterior, nuestro Dev2.1
está por delante de Master
por dos confirmaciones. Supongamos que solo queremos copiar los cambios introducidos por la confirmación Python Scripts
de nuestra rama Dev2.1
a nuestra rama Master
.
Para copiar los cambios, usamos el comando git cherry-pick
con el SHA-1
de nuestro comando Python Scripts
, como se muestra a continuación.
Cambiemos a nuestra rama maestra:
$ git checkout Master
Para copiar los cambios:
$ git cherry-pick 2521a66
Producción:
Podemos ver que git
ha copiado los cambios de la confirmación Python Scripts
a la rama Master
. Este compromiso debería ser visible si ejecutamos el comando git log
.
Dominio:
$ git log --oneline
Producción:
Conclusión
Puede copiar cambios de una rama a otra usando los comandos git merge
y git cherry-pick
. Puede especificar los cambios con el comando git cherry-pick
mientras que el comando git merge
copia todos los cambios.
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