Pregunta

Alguien por accidente acaba de cometer todas sus carpetas Bin y OBJ a nuestro repositorio (hay alrededor de 40 carpetas de este tipo). Me gustaría hacer un git rm -r en todas estas carpetas. ¿Hay algún comando para hacer esto?

¿Fue útil?

Solución

Tener copias de seguridad,

 find . -type d -name bin -exec git rm -r {} \;

 find . -type d -name obj -exec git rm -r {} \;

Actualizar

Con Bash, puedes configurar el Shopt Globstar y ser feliz:

 shopt -s globstar
 git rm -r **/{obj,bin}/

Finalmente, si necesita eliminarlos del historial del repositorio, mire git filter-branch y lea la sección en 'Eliminar objetos' desde el Libro pro git

Otros consejos

Una vez que revertirá (mantendrá los archivos en la historia) o restablecerá la confirmación,

git reset --hard

Una vez que se ignoran los archivos,

git clean -xdf

Lo uso para limpiar antes de reconstruir una solución. Parece que usa algunas DLL incluso después de un pago de una rama diferente o una fusión.

No debería necesitar recurrir a la rama de filtro. Rebase interactivo servirá. Recuerde la bandera --Preserve-Merges.

Espero que esto ayude.

Otra opción es revertir la confirmación ofensiva con git revert.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top