Para 1 y 2, todo lo que tiene que hacer es:
git stash -u #same effect as git reset --hard, but can be undone
esto va a tirar a la basura cualquier cambio. Tenga cuidado si usa reset
. Lea sobre la manipulación del índice y las permutaciones de las opciones duras, suaves y mixtas con el reinicio y el pago. El libro progit explica esto en detalle: http://progit.org/2011/07/11/reset.html
Para 3,
git reset --hard HEAD^
pero sería mejor para emitir una git stash -u
antes de esto - por si acaso usted tiene cambios pendientes.
Esto restablecerá la rama actual al padre de la confirmación actual. Busque "tree-ish" en línea.^y ~ N después de una referencia le permitirá señalar cualquier punto alcanzable en el historial de esa referencia. Para entender cómo la historia se realiza un seguimiento en Git, "Git para los informáticos" explica la Dirigido acíclicos Gráfico así: http://eagain.net/articles/git-for-computer-scientists/
para obtener los archivos individuales desde el estado de la corriente de pago comprometerse (es decir, tirar a la basura los cambios), se puede utilizar
git checkout HEAD -- <a list of files>
Si emitió el último comando de reinicio anterior por error, no tiene problemas. Git realiza un seguimiento del lugar donde las ramas solían apuntar en el reflog.
git reflog
le mostrará la historia. Se puede ver en que la producción de cómo hacer referencia a cada uno, así:
git reset --hard [email protected]{1}
restablecerá la rama en donde solía ser de 1 cambio antes.
Para añadir, si desea borrar ficheros ignorados y archivos sin seguimiento, se puede limpiar con esto:
git clean -xdf
Ten cuidado; git no le preguntará con un diálogo bonito (¿irritante?) para seleccionar qué archivos modificados desea deshacer cambios pendientes. :) –
una forma de hacerlo sería agregar el parámetro -p, que le indicará cada trozo de cambios. Puede decir 'a' o' d' para trabajar en archivos completos en lugar de 'y' o' n' para trozos individuales. –