git: guarda solo la última versión de un file específico

Guardo algunas notas de curso de LaTex en github. Mis colegas no saben cómo usar LaTex y me pidieron que ponga el PDF final en el repository.

Mantener los resultados de compilation binarys en un repository generalmente es una mala idea y cargar el PDF como un file extenal después de cada inserción no es conveniente.

¿Hay alguna manera de mantener solo la última versión del PDF en el repository?

Si ya está en github, hay un panel llamado "Descargas" donde puede agregar cualquier file que tenga. Probablemente haya una llamada API para eso si desea agregarlo a un gancho para cuando está presionando. Probablemente también podrías simplemente build + copyr el pdf en tu count de Dropbox / rsync it a una carpeta común / usar otra share-my-files-API / ..

Puede ser mejor que generes el pdf + envíalo por correo electrónico, también activado por un gancho.

Si terminas construyendo, agregando el pdf al repository y luego actualizando mucho ese file, el repository crecerá muy alto ya que los difs tendrán que ocupar un montón de espacio innecesario.

No hay una forma fácil y sencilla de eliminar versiones antiguas de un file de un repository. Cada confirmación es segura, lo que significa que el identificador de una confirmación se genera utilizando, entre otros, el contenido de cada file. Hay forms de reescribir la historia de un repository de git, pero hacerlo rompe por completo cualquier posibilidad de queueboración, ya que básicamente estás creando un nuevo repository cada vez que reescribes el historial.

Una alternativa es usar el anexo git, que fue diseñado especialmente para este objective: administrar files grandes en un pequeño repository. Desafortunadamente, esa es una característica bastante nueva, y no es parte del Git oficial, por lo que el soporte no es tan bueno.