Las respuestas dadas hasta ahora no son ideales porque requieren mucho trabajo innecesario para resolver conflictos de fusión, o hacen suposiciones que frecuentemente son falsas. Así es como se hace perfectamente. El enlace es a mi propio sitio.
Tiene cambios no confirmados en los my_branchque desea comprometerse master, sin comprometer todos los cambios demy_branch .
Ejemplo
git merge master
git stash -u
git checkout master
git stash apply
git reset
git add example.js
git commit
git checkout .
git clean -f -d
git checkout my_branch
git merge master
git stash pop
Explicación
Comience fusionando master en su sucursal, ya que de todos modos tendrá que hacerlo eventualmente, y ahora es el mejor momento para resolver cualquier conflicto.
La -uopción (aka --include-untracked) en git stash -uevita que pierdas archivos sin seguimiento cuando más tarde lo hagas git clean -f -ddentro demaster .
Después git checkout masteres importante que NO lo hagas git stash pop, porque necesitarás este alijo más tarde. Si usted hace estallar el alijo creada en my_branchy luego haces git stashen master, va a provocar conflictos de fusión innecesarias cuando posteriormente se aplica ese escondite enmy_branch .
git resetdesestabiliza todo lo que resulta de git stash apply. Por ejemplo, los archivos que se han modificado en el alijo pero que no existen enmaster se organizan como conflictos "eliminados por nosotros".
git checkout .y git clean -f -ddescarte todo lo que no está comprometido: todos los cambios en los archivos rastreados y todos los archivos y directorios no rastreados. Ya están guardados en el alijo y, si se dejan master, causarían conflictos de fusión innecesarios al volver a cambiar my_branch.
El último git stash popse basará en el original my_branchy, por lo tanto, no provocará ningún conflicto de fusión. Sin embargo, si su escondite contiene archivos no rastreados que se ha comprometido a dominar, git se quejará de que "No se pudieron restaurar los archivos no rastreados del escondite". Para resolver este conflicto, eliminar los archivos de su árbol de trabajo, a continuación git stash pop, git add .y git reset.