2011-01-09 17 views
113

Incorporé por error los archivos usando el comando "git add dir". Todavía no he ejecutado "git commit". ¿Hay alguna forma de eliminar este directorio y todo lo que contiene el compromiso?Deshacer "git add <dir>"?

He intentado git reset dir, pero no funcionó. Aparentemente git reset file es la manera de deshacerlo. Pero tengo tantos archivos y tan poco tiempo.

+3

'git reset ' actualiza el índice de esa ruta para que coincida con 'HEAD' (la confirmación actual). No toca el árbol de trabajo. – Cascabel

Respuesta

182

para eliminar un directorio y todo dentro de él a partir del índice,

git rm --cached -r dir

el interruptor --cached hace git rm ope califique solamente en el índice y no toque la copia de trabajo. El interruptor -r lo hace recursivo.

+0

este comando funcionó para mí. Gracias. – neoneye

+9

"Eliminar todo el directorio por etapas del índice" sería una explicación un poco mejor del comando git, ya que para principiantes git como yo, el comando se parece mucho a si pudiera incluso eliminar el directorio en el sistema de archivos. Solo por cuestión de gusto. –

+0

Es por eso que he marcado el interruptor '-cached'. Sin embargo, he editado la respuesta para calificar que solo se aplica al índice. –

14

tendrá que utilizar git rm --cached -r <dir>. este comando eliminará los contenidos del directorio en etapas del índice.

si el directorio ya fue rastreado usted tiene que encontrar los archivos nuevos y viejos manualmente y unstage ellos ...

probablemente ejecutar git reset <dir> después de eso para restablecer existente (y ya rastreado) archivos dentro del directorio

+0

Esto funcionó para mí –