Excluir files de git svn clone

Estoy migrando un repository SVN a Git y tengo más de 7000 files binarys que me gustaría excluir de ser importados y formar parte del historial de Git desde el principio, en lugar de limpiarlos después (ref esta pregunta ). La location de los files no sigue un patrón muy regular, así que tendría que proporcionar una list bastante larga de ubicaciones para git, y tengo ~ 8000 confirmaciones para tener en count.

Si mi objective es evitar la hinchazón del repository con files innecesarios, ¿cuál es el mejor enfoque para hacerlo?

¿Hay alguna manera de excluirlos desde el principio, quizás como una bandera para git svn clone? ¿ .gitignore a un .gitignore antes del clon evita que se agreguen?

La otra opción sería importar todo, luego reescribir el historial completo con git filter-branch para eliminar todos esos files antes de compartir el repository con otros.

En function de sus preguntas y comentarios, no creo que haya una forma de clonar simplemente sin los ciertos files que no desea.

Creo que solo colocar los files en el file gitingore no hará ninguna diferencia en el clon git que haces al repository.

Sin embargo, en el server puede crear una twig filtrada que no tenga estos files que puede extraer, como sugiere una de las respuestas a esta pregunta para su problema similar:

En el server:

 git checkout master^0 # the ^0 checks out the commit itself, not the branch git filter-branch --tree-filter 'git rm -r wp-content/uploads' HEAD git checkout -b filtenetworking 

(filter-branch en un gran proyecto aquí genera una nueva historia a aproximadamente 2-3 commits por segundo)

Luego, en cualquier lugar que desee, git init git remote agregue gimme your: // repo / path git fetch gimme filtenetworking

Como dice la documentation , el command filter-branch puede ser útil para lo siguiente, que parece include muy bien la situación en la que se encuentra:

Esos filters pueden modificar cada tree (por ejemplo, eliminar un file o ejecutar una reescritura de perl en todos los files) o información sobre cada confirmación. De lo contrario, se conservará toda la información (incluidos los times de confirmación originales o la información de fusión).


Editar : Esto tiene la ventaja adicional de que si quiere sacar de este repository en el futuro lugares adicionales, entonces es mucho más simple porque es una corrección de una vez que aplica al repository original en lugar de algo hecho para cada clon individual.