Estas son algunas opciones a considerar:
clones poco profundos: Usted puede agregar el parámetro --depth <depth>
a git clone
para obtener un clon sin profundidad del repositorio. p.ej. si <depth>
es 1, esto significa que el clon solo obtendrá los archivos necesarios para la confirmación más reciente. Sin embargo, este tipo de repositorios tienen restricciones incómodas sobre lo que puede hacer con ellos, como se indica en la página git clone
hombre:
--depth
Create a shallow clone with a history truncated to the specified
number of revisions. A shallow repository has a number of
limitations (you cannot clone or fetch from it, nor push from nor
into it), but is adequate if you are only interested in the recent
history of a large project with a long history, and would want to
send in fixes as patches.
De hecho, como se discute en this thread que es algo así como una exageración - hay situaciones útiles donde empujando desde un clon superficial seguirá funcionando, y es posible que se ajuste a su flujo de trabajo.
"medios git" de Scott Chacon extensión: el autor describe esto en respuesta a this similar question y en el README en github: http://github.com/schacon/git-media.
Submódulos poco profundos: puede guardar todos sus archivos grandes en un repositorio git separado y agregarlo como shallow submodule a su repositorio principal. Esto tendría la ventaja de que no tienes las restricciones de los clones superficiales para tu código, solo el repositorio con los archivos grandes.
También hay varias maneras de hacerlo agregando ganchos que (por ejemplo) rsync sobre sus archivos grandes desde git hooks, pero supongo que hay buenas razones por las que quiere mantener estos archivos bajo el control de git en primer lugar.
Espero que sea de alguna ayuda.
git-media tiene exactamente lo que yo quiero, pero aún no está terminado. Creo que lo hice funcionar con un poco de piratería. Ahora solo necesito codificar en soporte para subir archivos a donde quiero que vayan. – davr
Para referencia futura, aquí está mi fork de git-media con algunos cambios necesarios: http://github.com/davr/git-media – davr
¡Genial, eso se ve muy útil! Al igual que otro punto de interés, el hilo aquí (y en particular las diapositivas vinculadas en el primer correo) son interesantes sobre el tema de git tratar con archivos de gran tamaño http://git.661346.n2.nabble.com/Git-and -Media-repositories-td1446700.html –