2011-07-22 8 views
7

Incorporé erróneamente un directorio a git y cuando seguí la sugerencia here para deshacer el complemento haciendo git reset HEAD <file>, me horroricé al descubrir que la copia de trabajo actual de uno de los archivos, que tiene muchos cambios (¡funciona!) En ¡, revertido a la versión anterior!¿`git reset HEAD file` también revisa el archivo?

Como consecuencia, perdieron valor de varias horas de trabajo ...:. ((

pensé que git reset HEAD <file> solamente "lo elimina del índice actual without changing anything else Lo que no se me olvida

Is? git reset HEAD <file> supone que también la salida el archivo desde CABEZA?

¿Cómo puedo reducir al mínimo las posibilidades de que algo como esto vuelva a ocurrir en el futuro?

Respuesta

13

Solo git checkout -- <file> debería haber revertido los archivos en sus estadísticas anteriores. git reset HEAD <file> solo debe borrar el archivo del archivo, no revertir su contenido.

+0

OK, ¿podría un 'git rm -r ' que hice anteriormente (y git informó que esta operación falló) explica qué sucedió? –

2

git reset unstages archivos del índice. ¿Tal vez agregó --hard opción o usó git checkout después?

Citando la página de manual git-reset: restablecer

git [q] [<cometer>] [-] <caminos> ... Esta forma restablece las entradas de índice para todos a su estado a . (No afecta el árbol de trabajo, ni la rama actual.)

+0

Gracias. ¿Te entiendo correctamente que 'git reset HEAD ' ** NO ** se supone que haga lo que yo experimenté? es decir, ¿fue otra cosa lo que hice que revierte el archivo? –

+0

@Eternal Learner - Sí, quizás leer man git-reset sería una buena cosa :) –

+0

Lo leí en innumerables ocasiones. Aparentemente no me ayudó esta vez. :( –

Cuestiones relacionadas