Git LFS se negó a hacer un seguimiento de mis files grandes correctamente, hasta que hice lo siguiente

Problema

Tuve problemas tratando de usar git LFS , a pesar de las muchas sugerencias aquí en SO, en la documentation de Git y GitHub, y en algunos Gists con los que me topé.

Mi problema fue el siguiente:

Después de realizar los pasos necesarios:

git lfs install git lfs track "<file of interest>" git commit 

Todavía no tengo ningún file que se rastrea. Si actué

 git lfs ls-files 

estaría en blanco. Si continúo y realizo el empuje, la transacción fallará, diciendo que los files son demasiado grandes. (Como esperaba, pero estaba desesperado.)

Mi (Original Poster) "Solución"

Luego descubrí algunas correcciones, algunas de las cuales parecen ser errores, algunas de las cuales simplemente no eran obvias para mí.

  1. Parece que para usar lfs con un repository existente , se necesita una herramienta de hack o de terceros como el convertidor de BFG .

    • No quería ir por esa ruta, así que simplemente inicié localmente un nuevo repository , luego hice el desafío de conectarlo de nuevo al repository real.
    • Creé un nuevo directory, luego git init , etc.
      • En mi caso, el repository remoto era GitHub. Así que hice todas las conexiones adecuadas, como git remote add origin git@github.com:<my_id>/<my_repo>.git
  2. Además, aunque el video de entrenamiento de Git afirma que simplemente puedes especificar una carpeta , como "my_folder/" , no pude hacer que esto funcione. Por lo tanto, utilicé hábilmente extensiones de nombre de file para administrar cosas.

    • Por ejemplo, git lfs track "my_folder/" no funcionaría para mí, pero git lfs track "*.zip" sí funcionó.
  3. No tuve suerte al identificar los files LFS correctamente a less que primero haya actualizado el file .gitattributes y haya confirmado y .gitattributes ese nuevo file al server remoto .

    • git lfs track "*.zip"
    • git add .gitattributes
    • git commit -m "Updated the attributes"
    • git push
    • git add my_large_file.zip
    • git lfs ls-files
      • Y aquí me aseguraría de que vi my_large_file.zip siendo rastreado.
    • git commit -m "Now I am adding the large file"
    • git push

Es posible que algunas de las cosas funcionen, y simplemente las estaba haciendo mal. Sin embargo, siguiendo la brujería descrita anteriormente finalmente consiguió que LFS funcione, así que pensé en pasar estos detalles a otros, en caso de que alguien más tuviese el mismo problema.

Para rastrear todos los files y subdirectorys de my_folder través de LFS, puede hacer:

 git lfs track "my_folder/**" 

Funcionó para mí

Hacer lo siguiente no está funcionando a partir de ahora para rastrear todo el directory my_folder :

 git lfs track "my_folder/" 

no está trabajando