python - specific - Elimina e ignora todos los archivos que tienen una extensión desde un repositorio git
gitignore not ignoring file (4)
Estoy trabajando en un proyecto de django con algunos otros desarrolladores y recientemente nos hemos dado cuenta de que todos los archivos .pwc en nuestra aplicación hacen que los commit y el repositorio estén desordenados.
¿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?
En Windows, esto funcionó para mí:
git rm -r ''*.pwc'' -f
Y por mantenerlo en .gitignore
echo ''*.pwc'' >> .gitignore
La respuesta de Jefromi los eliminará para el presente y el futuro ... también podrías 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 de cuán grandes sean los archivos PWC, es posible que desee 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)
Muchas formas de eliminarlos:
git ls-files | grep ''/.pwc$'' | xargs git rm
find . -name *.pwc | xargs git rm
Nota: si no los ha cometido, simplemente use rm
, not git rm
.
Para ignorarlos en el futuro, simplemente agrega * .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")
También puede usar lo siguiente:
git rm -r ''*.pwc''
y luego haga que esos archivos sean ignorados por git:
echo ''*.pwc'' >> .gitignore
El último es en caso de que ya tengas el archivo .gitignore, si no, nosotros solos ''>'' firman.