volver stash rama ignorar deshacer como cambios cambiar anterior git branch git-checkout

stash - ignorar cambios git



git: cambia de rama e ignora cualquier cambio sin comprometer (9)

Cierre el terminal, elimine la carpeta donde está su proyecto, luego vuelva a clonar su proyecto y listo.

Estaba trabajando en una rama de git y estaba listo para confirmar mis cambios, así que hice una confirmación con un mensaje de confirmación útil. Entonces, distraídamente, hice cambios menores en el código que no vale la pena mantener. Ahora quiero cambiar de ramas, pero git me da,

error: tienes cambios locales en "X"; No se pueden cambiar las ramas.

Pensé que podía cambiar de sucursal sin comprometerme. Si es así, ¿cómo puedo configurar esto? Si no, ¿cómo salgo de este problema? Quiero ignorar los cambios menores sin comprometerme y solo cambiar ramas.


Necesitas un estado limpio para cambiar ramas. La verificación de sucursales solo se permitirá si no afecta a los ''archivos sucios'' (como lo señala Charles Bailey en los comentarios).

De lo contrario, deberías:

  • stash su cambio actual o
  • reset --hard HEAD (si no te importa perder esos cambios menores) o
  • checkout -f (Al cambiar de rama, proceda incluso si el índice o el árbol de trabajo difieren de HEAD. Esto se utiliza para eliminar los cambios locales).

Ninguna de estas respuestas me ayudó porque todavía tenía archivos sin seguimiento incluso después de restablecer y esconder. Tenía que hacer:

git reset --hard HEAD git clean -d -f


Seguir,

$: git checkout -f $: git checkout next_branch


Si ha realizado cambios en los archivos que Git también necesita cambiar al cambiar de sucursal, no se lo permitirá. Para descartar cambios de trabajo, use:

git reset --hard HEAD

Entonces, podrás cambiar ramas.


Si quieres descartar los cambios,

git checkout -- <file> git checkout branch

Si quieres mantener los cambios,

git stash save git checkout branch git stash pop


Tenga en cuenta que si ha fusionado sucursales remotas o tiene confirmaciones locales y desea volver a la HEAD remota, debe hacer:

git reset --hard origin/HEAD

HEAD solo se referirá solo a la confirmación / combinación local; varias veces he olvidado que al reiniciar y terminar con "su repositorio tiene X confirmaciones por delante ..." cuando tenía la intención de detener TODOS los cambios / confirmaciones y regresar al control remoto rama.


bueno, deberia ser

git stash save git checkout branch // do something git checkout oldbranch git stash pop


cambiando a una nueva sucursal perdiendo cambios:

git checkout -b YOUR_NEW_BRANCH_NAME --force

cambiando a una rama existente perdiendo cambios:

git checkout YOUR_BRANCH --force