git checkout -b, confirma algunos files, checkout a la twig original se queja de cambios anulados

Esto me sorprende y no puedo pensar en cómo puede ser posible.

  1. git checkout -b newbranch .
  2. confirmar algunos files que no sean Foo.java .
  3. git checkout master (que era la twig original en la que estaba) da error:

error: los cambios locales en los siguientes files se sobrescribirán al finalizar la compra:
Foo.java Por favor, comprometa sus cambios o guárdelos antes de que pueda cambiar de twig. Pero ya estaba dominado. Así que hago el flujo de trabajo habitual:

  1. git stash
  2. git checkout master

Y se fusiona automáticamente con éxito. ¿Por qué necesitaba fusionarse automáticamente? ¿Por qué tenía que bloquear mi git checkout yendo de master pero no de return a master ? Intento entender la lógica para cuando git hace estas quejas.

Cuando git checkout -b en realidad no desapareció, se mantuvo en la misma confirmación. Es por eso que le permitió pagar y conservar todos los cambios locales. Volver a "master" cambia la confirmación (y en realidad modifica el tree de trabajo), es por eso que anularía los cambios.