2012-07-14 23 views
5

Al eliminar un archivo (o cambiarle el nombre) mediante el uso de mv, rm o alguna otra instalación, el archivo muestra como eliminado cuando lo haga git status:¿Cómo eliminar archivos eliminados de .git?

# Changes not staged for commit: 
# (use "git add/rm <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# deleted: ../src/main/..../myFile.java 

Antes de crear una confirmación, es engorroso hacer git rm <file> para cada archivo, particularmente porque no hay autocompletado en el terminal para un archivo que no está allí.

¿Hay alguna manera más corta de eliminar los archivos eliminados del conjunto de archivos rastreados por git?

Gracias

+0

Normalmente solo copio y pego en un editor de texto y luego lo encuentro y lo reemplazo para procesarlo de una vez. –

Respuesta

4

Creo git add -u hará lo que usted desea, a partir de la documentación:

-u 
--update 
    Only match <filepattern> against already tracked files in the index 
    rather than the working tree. That means that it will never stage new 
    files, but that it will stage modified new contents of tracked files 
    and that it will remove files from the index if the corresponding file 
    in the working tree have been removed. 

Referencia: http://git-scm.com/docs/git-add

1

No es exactamente lo que pidieron, pero se puede tratar git commit -a. A partir de la documentación:

Tell the command to automatically stage files that have been modified 
and deleted, but new files you have not told git about are not affected. 
2

Sí, git add -u debe hacer el truco (que actualiza su índice con todas las modificaciones/deleciones). Si ya ha agregado el archivo con su nuevo nombre de archivo, incluso verá el cambio de nombre en git status.

3

Al eliminar algunos archivos, no olvide añadirlo parámetro "a" en comprometen:

$ git commit -am 'Message' 

"a" eliminará automáticamente los archivos del repositorio

1

Mi respuesta no aborda esta cuestión específica, pero ...

Tenga en cuenta que a diferencia de algunos otros VCSes, en Git, el comando elimina el archivo git rm tanto del índice y el árbol de trabajo a menos que indiquen lo contrario (usando la opción de línea de comando --cached). Por lo tanto, se aconseja eliminar los archivos rastreados utilizando git rm en primer lugar: conseguirá que la finalización de su nombre de archivo funcione y no hay necesidad de meterse con la sincronización del estado del índice con el árbol de trabajo.

+0

Es cierto, pero a veces cambio el nombre de los archivos desde un editor de texto. Dado que el archivo puede estar en un árbol, escribir 'git rm' y la ruta completa al archivo pueden tomar más tiempo. – axel22

+0

'git mv' en su caso, pero sí, de lo contrario, estoy de acuerdo. – kostix

Cuestiones relacionadas