A veces, el pago fallará porque sus cambios entran en conflicto con esa rama. Puede intentar pagar -m para fusionar.
Jouni K. Seppänen
2
Intenté esto pero recibí un error: error: sus cambios locales en los siguientes archivos se sobrescribirán al finalizar la compra. Por favor, confirme sus cambios o guárdelos antes de poder cambiar de rama.
ishwr
Si bien esto funcionará, la respuesta que dice use stash debería ser preferible, IMO. Tal vez solo sea una elección personal, pero es un flujo de trabajo más limpio, lógicamente e introduce STASH, que es un comando útil.
Patrick
Falta la opción "-b", ya que el título sugiere que la pregunta se refiere a una "nueva" rama.
Guntram
195
También puede crear una nueva rama y cambiar a ella haciendo:
git checkout -b new_branch
git add .
Lo uso todo el tiempo porque siempre me olvido de comenzar una nueva rama antes de comenzar a editar el código.
El mismo problema que @jouni señaló para la otra respuesta: puede tener dificultades para fusionar la rama de nuevo en maestro si los cambios adicionales entran en conflicto con los cambios originales. OMI este hilo responde mejor a la pregunta: stackoverflow.com/questions/556923/…
jpw
Corto, dulce y tranquilizador ... "Lo uso todo el tiempo ..."
17οδεMεδιϲ
1
No olvide hacer commit en new_branch. Si vuelve a cambiar a la rama maestra y revierte los archivos modificados, también los perderá en new_branch.
petrsyn
36
¿Por qué no solo usar git stash? Creo que es más intuitivo como copiar y pegar.
$ git branch
develop
* master
feature1
TEST
$
Tiene algunos archivos en su rama actual que desea mover.
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: awesome.py
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: linez.py
#
$
$ git stash
Saved working directory and index state \
"WIP on master: 934beef added the index file"
HEAD is now at 934beef added the index file
(To restore them type "git stash apply")
$
$ git status
# On branch master
nothing to commit (working directory clean)
$
$
$ git stash list
stash@{0}: WIP on master: 934beef ...great changes
$
Mover a la otra rama.
$ git checkout TEST
Y aplicar
$ git stash apply
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# modified: awesome.py
# modified: linez.py
#
También me gusta git stashporque lo uso git flow, que se queja cuando quieres terminar una rama de características mientras todavía hay cambios en tu directorio de trabajo.
Al igual que @Mike Bethany, esto me sucede todo el tiempo porque trabajo en un nuevo problema mientras olvido que todavía estoy en otra sucursal. Para que pueda esconder su trabajo git flow feature finish..., y git stash applya una nueva git flow feature start ...sucursal.
Respuestas:
Simplemente puede pagar en la rama de prueba y luego confirmar. No pierde sus cambios no comprometidos cuando se muda a otra rama.
Supongamos que estás en la rama maestra:
No estoy realmente seguro acerca de los archivos eliminados, pero supongo que no se incluyen cuando usas
git add .
fuente
También puede crear una nueva rama y cambiar a ella haciendo:
Lo uso todo el tiempo porque siempre me olvido de comenzar una nueva rama antes de comenzar a editar el código.
fuente
¿Por qué no solo usar git stash? Creo que es más intuitivo como copiar y pegar.
Tiene algunos archivos en su rama actual que desea mover.
Mover a la otra rama.
Y aplicar
También me gusta
git stash
porque lo usogit flow
, que se queja cuando quieres terminar una rama de características mientras todavía hay cambios en tu directorio de trabajo.Al igual que @Mike Bethany, esto me sucede todo el tiempo porque trabajo en un nuevo problema mientras olvido que todavía estoy en otra sucursal. Para que pueda esconder su trabajo
git flow feature finish...
, ygit stash apply
a una nuevagit flow feature start ...
sucursal.fuente
git stash
es mi forma preferida de lidiar con cambios no comprometidos. Sin duda, es un método intuitivo cuando lo piensas como cortar y pegar.git stash --include-untracked
fuente