Al trabajar con Git en algunas situaciones puede surgir la necesidad de crear una nueva rama en Git que incluya solo algunos cambios de otra rama. Por ejemplo, si solo se necesita aplicar algunos cambios y no todos los realizados en la rama de desarrollo. Lo que se puede conseguir con comandos como git cherry-pick
, git checkout
y git diff
. En esta entrada se explicará cómo realizar la creación de una nueva rama en Git con solo algunos cambios de otra rama
Tabla de contenidos
La capacidad de seleccionar cambios específicos y trasladarlos a una nueva rama es característica que puede facilitar la tarea de desarrollo en múltiples escenarios:
Git ofrece herramientas como git cherry-pick
, git checkout
y git diff
que permiten realizar estas tareas de manera eficiente y sin complicaciones.
El primer paso para crear una nueva rama en Git con solo algunos cambios es identificar el commit base. Este commit será el punto de partida para la nueva rama. Puede ser:
main
o master
.Para identificar el commit base se puede recurrir al comando: git log --oneline
, lo que mostrará un historial resumido de commits. Supóngase que el historial del repositorio es como el que se muestra a continuación:
a1b2c3d Cambios en funcionalidad X e4f5g6 Corrección de bug Y h7i8j9 Implementación de nueva característica Z
Si el commit base es aquelarre en la que se corrige el bug Y será necesario anotar su has, en este caso e4f5g6
.
Ahora, será necesario crear una nueva rama utilizando el hash del commit base identificado en el paso anterior:
git checkout -b nueva-rama e4f5g6
Este comando:
nueva-rama
.e4f5g6
en este caso).Una vez creada la nueva rama, el siguiente paso será traer únicamente los cambios necesarios de otra rama. Dependiendo de cómo estén organizados los cambios, se puede usar uno de los siguientes métodos:
git cherry-pick
para aplicar commits específicoSi los cambios requeridos están en commits separados, la mejor opción es usar git cherry-pick
. Para eso se debe seguir los siguientes pasos:
git checkout nueva-rama
git cherry-pick <hash_commit_1> <hash_commit_2>
Por ejemplo:
git cherry-pick h7i8j9 a1b2c3d
git log
git checkout
para extraer archivos específicosPor otro lado, si los cambios están distribuidos en archivos específicos, una opción sería utilizar el comando git checkout
. Esto podría indicar que los commits no son atómicos, es decir, no contienen un único cambio bien definido. En este caso, sería recomendable revisar la metodología utilizada para crear los commits en Git. No obstante, si esta situación es inevitable, se puede proceder siguiendo los pasos que se detallan a continuación:”
git checkout nueva-rama
git checkout <rama_original> -- ruta/del/archivo
Por ejemplo:
git checkout desarrollo -- src/app.js
git add ruta/del/archivo git commit -m "Traer cambios específicos desde desarrollo"
git diff
y git apply
para cambios personalizadosFinalmente, si lo que se necesita es incluir solo algunos cambios de un archivo el proceso es algo más complejo, pero también se puede hacer. Los pasos para seguir en este caso son:
git diff desarrollo -- ruta/del/archivo > cambios.patch
git checkout nueva-rama
git apply cambios.patch
git add ruta/del/archivo git commit -m "Aplicar cambios seleccionados desde parche"
Antes de subir la nueva rama, es necesario asegurarse de que todo es correcto. Para lo que se deben seguir los siguientes pasos:
git status
git log
Finalmente, para compartir la nueva rama con el resto del equipo, será necesario subirla al repositorio remoto:
git push origin nueva-rama
Crear una nueva rama en Git con solo algunos cambios es una tarea común que se puede manejar fácilmente con herramientas como git cherry-pick
, git checkout
y git diff
. Este proceso permite entregar funcionalidades específicas, solucionar errores críticos o preparar versiones para pruebas sin afectar el resto del trabajo en desarrollo.
Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.
En el mundo del análisis de datos solemos escuchar una idea poderosa: cuantos más datos,…
¿Te has encontrado con este error al intentar instalar paquetes con npm? npm ERR! code…
En ciencia de datos y estadística, los promedios y porcentajes son herramientas fundamentales para resumir…
Las bases de datos son el corazón de casi cualquier sistema de información moderno. Ya…
En ciencia de datos, pocas cosas llaman más la atención de los científicos de datos…
Calcular adecuadamente el tamaño de la muestra es una parte esencial en el diseño de…
This website uses cookies.