Cuando haces un merge de una rama a otra en Git, los cambios de la rama que estás fusionando (source branch) se reflejan en la rama de destino (target branch). Sin embargo, los commits originales de la rama source también se incluyen en la rama target, a menos que hagas un squash merge o un merge fast-forward.
Si no ves los commits en la rama hacia la que has hecho el merge, es probable que se haya realizado un squash merge o que no se haya hecho un merge real, sino un fast-forward. Puedes verificar el historial de commits con:
git log --oneline
Si necesitas más detalles sobre cómo se realizó el merge, puedes usar:
git log --graph --oneline --all
En Git, no puedes hacer un merge directamente de un solo archivo o carpeta de una rama a otra. Sin embargo, puedes lograr un resultado similar utilizando los siguientes métodos:
git checkout para traer un archivo específicoPuedes traer un archivo o carpeta específica de otra rama a la rama actual utilizando el comando git checkout (o git restore en versiones más recientes de Git):
# Cambiar a la rama de destino
git checkout rama-destino
# Traer un archivo específico desde otra rama
git checkout rama-origen -- ruta/al/archivo
# O traer una carpeta completa
git checkout rama-origen -- ruta/a/la/carpeta
# Añadir los cambios al área de staging
git add ruta/al/archivo
# Confirmar los cambios
git commit -m "Merge del archivo específico desde rama-origen"
git cherry-pick para traer un commit específicoSi el archivo o carpeta que deseas mergear fue modificado en un commit específico, puedes usar git cherry-pick para aplicar ese commit en la rama actual:
# Cambiar a la rama de destino
git checkout rama-destino
# Aplicar un commit específico desde la rama origen
git cherry-pick <hash-del-commit>
Para encontrar el hash del commit, puedes usar: