Mover el commit a otra rama en Git

Abdul Jabbar 30 enero 2023
  1. Calcule cuántos commits se moverán en Git
  2. Moviendo los commits a una nueva rama en Git
  3. Mover los commits a una rama existente en Git
Mover el commit a otra rama en Git

Git es una herramienta muy útil y poderosa en el mundo del software moderno. Se pueden almacenar muchos tipos de archivos y códigos a través de bifurcaciones y commits en Git. La bifurcación es un concepto que es diferente según el sistema de control de versiones que esté utilizando. Muchos desarrolladores asumen que es el sistema de control de versiones preferido debido a su eficiencia.

La mayoría de las veces, nos enfrentamos a esta situación cuando, después de completar algún trabajo y commits con una rama específica, nos damos cuenta de que nos commits con la rama equivocada por error y queremos confirmar eso nuevamente en otra rama. Aquí Git viene a rescatarnos, permitiéndonos mover nuestros commits a otras ramas existentes o en la nueva rama.

Esta guía nos dará una comprensión básica de cómo mover nuestras commits a otra rama, ya sea una nueva o existente. Además, discutiremos cómo crear una nueva rama con el comando git branch, mover un commit con el comando git reset y fusionar esos cambios nuevamente en la rama principal con el comando git merge.

Calcule cuántos commits se moverán en Git

Antes de comenzar todo el proceso, debemos juzgar la situación. Supongamos que hemos revisado la rama que vamos a cambiar; necesitamos ver la historia para este propósito.

Usaremos el siguiente comando para calcular cuántos commits mover.

git log

Después de ejecutar, podemos ver que HEAD son dos commits al principio de origin/HEAD, y estas son las dos commits deseadas que necesitamos para pasar a otra rama. A continuación se encuentran los pasos restantes, en los que cubriremos cómo mover estas commits a una nueva rama o una rama existente.

Moviendo los commits a una nueva rama en Git

Los siguientes pasos nos mostrarán cómo mover nuestros últimos commits a una nueva rama.

  • Creando una nueva rama
    git branch feature/new branch
    

    Este comando creará una nueva rama que incluirá todas los commits de la rama master (actual).

  • Mover la rama actual hacia atrás dos commits
    git reset --keep HEAD~2
    
  • Echa un vistazo a la nueva rama
    git checkout feature/new branch
    

Al ejecutarlos, nuestras dos últimos commits se eliminaron de master (rama actual) y se agregaron en una nueva rama llamada feature/new branch.

Mover los commits a una rama existente en Git

Los pasos mencionados a continuación nos mostrarán cómo mover nuestras últimos commits a una rama existente. Será útil para nosotros si hemos estado trabajando en una rama de funciones, pero comenzamos a hacer commits en la rama incorrecta por error. Supongamos que la rama actual, con los commits que queremos eliminar, es master.

  • Comprobación de la rama existente
    git checkout feature/existing branch
    

    El comando git checkout no se limita a trabajar solo con el directorio de trabajo. También se puede usar para mover el puntero de referencia HEAD a un punto de referencia en una rama.

  • Fusionar rama maestra
    git merge master
    

    El comando git merge también se puede usar para fusionar ramas en la rama actual, pero solo si la rama actual ya se ha fusionado con las ramas que se fusionan.

  • Echa un vistazo a la rama maestra
    git checkout master
    

    El comando checkout master extrae la última versión del código y crea una nueva rama llamada master.

  • Mover la rama actual hacia atrás dos commits:
    git reset --keep HEAD~2
    

    La opción --keep restablecerá las entradas del índice y actualizará los archivos en el árbol de trabajo que son diferentes entre commit y HEAD. Cuando el archivo es diferente entre el compromiso y HEAD tiene cambios locales, el restablecimiento finaliza. Por lo tanto, las últimas dos commits se eliminaron del master y se agregaron a una rama existente.

Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

Artículo relacionado - Git Commit

Artículo relacionado - Git Branch