Mover cambios no confirmados existentes a una nueva rama en Git

John Wachira 15 febrero 2024
Mover cambios no confirmados existentes a una nueva rama en Git

Este artículo analiza el proceso de mover cambios no confirmados a una nueva rama.

Puede estar trabajando en su rama maestra y darse cuenta de que debe crear una nueva rama y mover los cambios no confirmados. Si estás en una situación similar, quédate.

Mover cambios no confirmados existentes a una nueva rama

Tome este escenario hipotético: está trabajando en su rama maestra y se da cuenta de que su código necesita pruebas antes de que pueda comprometerse con la maestra.

Debe crear una nueva rama, mover los cambios no confirmados y restablecer su rama maestra. ¿Cómo haces esto?

Hay dos maneras de hacer esto.

  1. Usando el comando git checkout o el comando git switch.
  2. Usando el comando git stash.

los comandos git checkout y git switch

Si ha estado usando Git durante años, probablemente sepa que el comando git checkout tiene varios usos. Sabes que podemos usar el comando git checkout para crear y cambiar a una nueva rama.

Suponiendo que estamos en nuestra rama maestra, y nuestro espacio de trabajo se ve así:

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to ...)
  (use "git checkout -- <file>..." to ...)
        modified:   LICENSE.md
        modified:   README.md
Untracked files:
  (use "git add <file>..." to include...)
        scripts.txt
no changes added to commit (use..)

¿Cómo trasladamos estos cambios a una nueva sucursal?

Para mover los cambios a una nueva rama, por ejemplo, una nueva rama de desarrollo, ejecutaremos:

$ git checkout -b development

Alternativamente, podemos usar el comando git switch, como se ilustra a continuación.

$ git switch -c development

Ambos comandos crearán una rama de desarrollo y moverán nuestros cambios no confirmados a la nueva rama. A continuación se muestra nuestro directorio de trabajo en la rama desarrollo.

espacio de trabajo de la rama de desarrollo

Luego podemos agregar los archivos al índice y confirmar.

Si volvemos a la rama maestra y ejecutamos el comando git status, veremos que nuestro árbol de trabajo está limpio.

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

el comando git stash

Podemos mover los cambios a una nueva rama usando el comando git stash. Esto almacenará los cambios no confirmados en un archivo de parche.

$ git stash

Luego puede crear una nueva rama donde almacenará los cambios no confirmados. Use el comando git checkout para crear y cambiar a la nueva rama, como se muestra a continuación.

$ git checkout -b <new branch>

Haga estallar el alijo para aplicar los cambios no confirmados en el espacio de trabajo de la rama recién creada. Usa los comandos git stash pop o git stash apply.

$ git stash pop

Es posible que obtenga conflictos de fusión que tendrá que resolver manualmente a su gusto. Si está satisfecho con los cambios, proceda a confirmar.

En pocas palabras, para mover cambios no confirmados de una rama a otra, tiene dos opciones. Puede usar el comando git stash o los comandos convencionales git switch y git checkout.

John Wachira avatar John Wachira avatar

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

Artículo relacionado - Git Stash