2010-02-23 16 views
31

Estoy trabajando en un proyecto django con algunos otros desarrolladores y recientemente nos hemos dado cuenta de que todos los archivos .pwc en nuestra aplicación provocan que los commit y el repositorio sean abarrotadoEliminar e ignorar todos los archivos que tienen una extensión desde un repositorio git

¿Hay alguna manera de que pueda eliminar todos los archivos .pwc de todos los directorios secundarios en mi repositorio de git y luego ignorarlos para cualquier compromiso futuro?

Respuesta

42

montón de maneras de eliminarlos:

git ls-files | grep '\.pwc$' | xargs git rm 

find . -name *.pwc | xargs git rm 

Nota: Si usted no los ha cometido, sólo tiene que utilizar rm, no git rm.

Para ignorarlas en el futuro, simplemente agregue * .pwc al .gitignore. (Si no tiene uno, cree un archivo llamado .gitignore en el nivel superior de su repositorio, y simplemente agregue una sola línea que diga "* .pwc")

+0

me hizo tarde estableció un .gitignore pero * .pwc mantenerlos ignorado durante cada nivel de directorio de la aplicación? – BenMills

+0

El .gitignore se respeta en todos los subdirectorios del que se encuentra. Es por eso que generalmente se ubican en el nivel superior. Tenga en cuenta que puede ponerlos en niveles inferiores, si desea ignorar reglas solo para un subdirectorio dado. – Cascabel

3

La respuesta de Jefromi los eliminará para el presente y el futuro ... también podría eliminarlos en el pasado usando git filter-branch. Por supuesto, esto tiene otras ramificaciones, como requerir que todos los demás que trabajen en el repositorio vuelvan a realizar el check-out (y posiblemente reubiquen cualquier trabajo que no hayan enviado al repositorio principal). Depende del tamaño de los archivos PWC, puede querer hacer esto si están desperdiciando mucho espacio de disco en su repositorio (ya que cada vez que clona un repositorio git, obtiene todos los archivos y todas las revisiones)

15

También puede utilice la siguiente:

git rm -r '*.pwc' 

y luego hacer esos archivos ignorados por git:

echo '*.pwc' >> .gitignore 

el último es en el caso si usted ya tiene .gitignore archivo, si no, nosotros solo signo '>' .

+1

Es cierto, pero esto no se verá en los subdirectorios. – jiehanzheng

+0

@jiehanzheng Eso no es correcto, el indicador '-r' también eliminará los archivos en los subdirectorios. – kaveish

0

En de Windows esto funcionó para mí:

git rm -r '*.pwc' -f 

Y para mantenerlo en .gitignore

echo '*.pwc' >> .gitignore 
Cuestiones relacionadas