HOWTO · Git
Mover cambios no confirmados existentes a una nueva rama en Git
Puede mover sus cambios no confirmados 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.
- Usando el comando
git checkouto el comandogit switch. - 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.
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.