Compañeros y compañeras como buena practica siempre se debe evitar manejar archivos diferentes a texto plano con git y github. Sin embargo en ocasiones un programa no funciona de forma correcta sin archivos como estos. Por ejemplo imagenes ISO o en mi caso modelos de redes neuronales ya entrenadas en formato .pth, estas pueden llegar a pesar de 100 a 300 Mb. Para esto existe git-lfs. y en este tutorial tratare de enseñarte qué es y como manejarlo.
<h1>Acerca de git-lfs</h1>git-lfs es un acronimo de Git Large File Storage. Este es una aplicación de linea de comando desarrollado como un third party compatible con git y github, con la función de manejar archivos de gran tamaño que estos no manejan o deberian manejar.
Este remplaza en git y github los archivos con punteros de texto plano que son guardados en el control de versiones, mientras los archivos reales son almacenados en memoria; en el computador en caso de git y en un servidor remoto en el caso de github.

Instalación
La instalación varia segun tu sistema operativo.
- Windows: Las ultimas distribuciones de Windows ya cuentan con esta opción al instalar git, por lo que no hay mucho problema aquí.
- Mac: Para Mac se debe tener instalado Homebrew, y se instala con este comando:
brew install git-lfs
- Linux: Para linux es nesesario incluir el repo en el listado de paquetes para actualización del sistema, ya que se ejecuta nativo. Esto lo logras así:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
Luego debes instalarlo con apt
sudo apt install git-lfs
Uso
Para usarlo no es más que seguir este ejemplo, en Windows ejecutalos desde git-bash
- Una vez se haya creado el repositorio con git init, usa este comando para iniciar git-lfs
git lfs install
- Luego indicas la extensión de los archivos que no deben ser manejados por git o github. En mi caso los modelos entrenados de computer vision.
git lfs track "*.pth"
Esto crea un archivo .gitattributes con las instrucciones para crear los punteros y enviar los archivos al repositorio de git-lfs
- Debes añadir el archivo .gitattributes a git así
git add .gitattributes
- Haces un commit comun
git commit -m "Add model files"
Por ultimo es importante aclarar que el almacenmiento no es ilimitado y varia segun tu cuenta de git así:

Si quieres saber más sobre esta app lo puedes ver aquí:
Curso Profesional de Git y GitHub