Este es un enfoque simple si no tiene muchos cambios de código:
1. git stash
2. git stash apply
3. remove the files/code you don't want to commit
4. commit the remaining files/code you do want
Luego, si desea el código que eliminó (bits que no confirmó) en una confirmación separada u otra rama, entonces, mientras esté en esta rama, haga lo siguiente:
5. git stash apply
6. git stash
Con el paso 5, ya que aplicó el alijo y confirmó el código que deseaba en el paso 4, la diferencia y sin seguimiento en el alijo recién aplicado es solo el código que eliminó en el paso 3 antes de comprometerse en el paso 4.
Como tal, el paso 6 es un alijo del código que no [deseaba] confirmar, ya que probablemente no quiera perder esos cambios, ¿verdad? Por lo tanto, el nuevo alijo del paso 6 ahora se puede comprometer con esta o cualquier otra rama haciendo que git stash aplique en la rama correcta y confirmando.
Obviamente, esto supone que realiza los pasos en un flujo, si se oculta en cualquier otro punto de estos pasos, deberá anotar la referencia de ocultación para cada paso anterior (en lugar de solo la ocultación básica y aplicar la ocultación más reciente).