2009-06-28 12 views
28

Quiero eliminar todos los archivos de Git en ~/bin /.No se pueden eliminar archivos recursivamente de Git

corro

git rm -r --cached ~/.vim/*      # Thanks to Pate in finding --cached! 

me sale

messsage
fatal: pathspec '.vim/colors' did not match any files 

Este error me sugiere utilizar las siguientes vías de acceso, ya que ~/.vim/** no funciona

~/.vim/*  # I get the error 
~/.vim/*/*/* # This removes files from the index at ~/.vim/folderA/folderB/file1.txt 
~/.vim/*/*  # similar error as to the first PATH 

¿Cómo se pueden eliminar todos los archivos y subdirectorios en ~/.vim de Git?

-

Respuesta

36
git rm -r --cached ~/.vim/* 
fatal: pathspec '.vim/colors' did not match any files 

1/que no es necesario el '*':

git rm -r --cached ~/.vim 

se hará cargo de cualquier rastreados sub-archivos.

2/fatal: pathspec '.vim/colors' did not match any files simplemente significa uno de los comandos que probó antes de que el que figura en 1/haya funcionado, ¡y no hay más archivos para eliminar!

# to test that command, first reinitialize the state of the repository 
# save first if you have any other current modifications 
$ git reset --hard 

# then check the rm works 
$ git rm -r --cached ~/.vim 
rm '.vim/aPath/aFile1' 
rm '.vim/aSecondPath/aFile2' 
rm '.vim/aThirdPath/aFile3' 

# try it again 
$ git rm -r --cached ~/.vim 
fatal: pathspec '.vim/colors 
+0

@Vonc: ¡Gracias por tu ayuda! –

9

Desea eliminar ellos, incluso si hay modificaciones locales?

git rm -rf bin/* 

¿O desea eliminar del índice pero conservar los archivos?

git rm -r --cached bin/* 

También probar:

git help rm 
+0

@Pate: Quiero eliminar los archivos de Git de modo que tenga los archivos en mi máquina después de la eliminación. –

+0

Esta respuesta es la base de la pregunta modificada. –

0

Debe entender lo que * hace un poco primero.

Las aplicaciones no aparecen en * (u otros caracteres globbing): reciben todas las coincidencias del glob como argumentos individuales.

Para entender esto mejor, puesto echo en frente de su primer comando y ver lo que imprime:

git rm -r --cached ~/.vim/* 

Vas a ver cada partido, incluyendo cosas que el programa no sabe cómo operar (que incluye .vim/colors).

+0

Creo que esta respuesta debería haber incluido el eco descrito, así como una solución al problema real que tiene el OP. – superbeck

1

O podría ser que el directorio que está intentando eliminar de forma recursiva esté en la lista .gitignore. Acabo de encontrar esto. Tengo ./vendors en mi lista de ignorados, y hay un montón de directorios en ./vendors, pero debido a que se ignora cualquier cosa en los proveedores, en realidad no se está eliminando nada como ./vendors/assetic porque no está realmente en el repositorio. Olvidé que estaba en la lista de ignorar :)

+0

... gracias ... :) –

Cuestiones relacionadas