Acerca de los límites de tamaño en GitHub
GitHubintenta proporcionar almacenamiento abundante para todos los repositorios de Git, aunque existen límites estrictos para los tamaños de archivo y repositorio y recomendaciones para los tamaños de repositorio.
Para garantizar el rendimiento y la confiabilidad de nuestros usuarios, supervisamos activamente las señales del estado general del repositorio. El estado del repositorio es una función de varios factores que interactúan, como el tamaño, la frecuencia de confirmación, el contenido y la estructura.
Límites de tamaño de archivo
GitHub limita el tamaño de los archivos permitidos en los repositorios. Si intenta agregar o actualizar un archivo mayor que 50 MiB, recibirá una advertencia de Git. Los cambios aún se subirán a tu repositorio, pero puedes considerar eliminar la confirmación para minimizar el impacto en el rendimiento. Para obtener más información, consulta [Eliminación de archivos del historial de un repositorio](#removing-files-from-a-repositorys-history).
Nota:
Si agrega un archivo a un repositorio a través de un explorador, el archivo no puede ser mayor que 25 MiB. Para más información, consulta Agregar un archivo a un repositorio.
GitHubbloquea los archivos mayores que .100 MiB
Para realizar un seguimiento de los archivos más allá de este límite, debe usar Almacenamiento de archivos de gran tamaño de Git (Git LFS). Para más información, consulta Acerca del Almacenamiento de Archivos Grandes de Git.
Si necesita distribuir archivos grandes dentro del repositorio, puede crear lanzamientos en GitHub.com en vez de hacer el seguimiento de los archivos. Para obtener más información, consulta Distribución de archivos binarios grandes.
Git no se diseñó para manejar archivos grandes de SQL. Para compartir bases de datos grandes con otros desarrolladores, se recomienda usar un servicio para compartir archivos.
Límites de tamaño de repositorio
Te recomendamos que los repositorios sean siempre pequeños, idealmente, de menos de 1 GB, y se recomienda ampliamente que sean de menos de 5GB. Los repositorios más pequeños se clonan más rápido y se puede mantenerlos mejor y trabajar en ellos más fácilmente. Si el repositorio afecta excesivamente a nuestra infraestructura, es posible que reciba un correo electrónico Soporte de GitHub que le pida que tome medidas correctivas. Intentamos ser flexibles, especialmente con proyectos grandes que tienen muchos colaboradores, y trabajaremos junto contigo para encontrar una resolución cada que sea posible. Puedes prevenir que tu repositorio impacte nuestra infraestructura si administras el tamaño de tu repositorio y su salud general con eficacia. Puede encontrar consejos y una herramienta para el análisis de repositorios en el repositorio github/git-sizer.
Las dependencias externas pueden causar que los repositorios de Git se hagan muy grandes. Para evitar llenar un repositorio con dependencias externas, te recomendamos utilizar un administrador de paquetes. Entre los administradores de paquetes más populares para los lenguajes comunes se incluyen Bundler, el Administrador de paquetes de Node y Maven. Estos administradores de paquetes soportan la utilización directa de repositorios de Git para que no dependas de fuentes pre-empacadas.
Git no está diseñado para fungir como una herramienta de respaldo. Sin embargo, hay muchas soluciones diseñadas específicamente para realizar copias de seguridad, como Arq, Carbonite y CrashPlan.
Eliminar archivos del historial de un repositorio
Advertencia
Estos procedimientos eliminarán permanentemente los archivos del repositorio en tu equipo y GitHub.com. Si el archivo es importante, haz una copia de seguridad local en un directorio por fuera del repositorio.
Eliminar un archivo agregado en el commit más reciente que no ha sido empujado
Si el archivo se agregó con tu commit más reciente y no ha hecho push a GitHub.com, puedes eliminar el archivo y modificar el commit:
-
Abra TerminalTerminalGit Bash.
-
Cambia el directorio de trabajo actual por tu repositorio local.
-
Para quitar el archivo, escriba
git rm --cached:$ git rm --cached GIANT_FILE # Stage our giant file for removal, but leave it on disk -
Confirme este cambio con
--amend -CHEAD:$ git commit --amend -CHEAD # Amend the previous commit with your change # Simply making a new commit won't work, as you need # to remove the file from the unpushed history as well -
Inserte las confirmaciones en GitHub.com:
$ git push # Push our rewritten, smaller commit
Eliminar un archivo que se añadió en una confirmación de cambios previa
Si añadiste un archivo en una confirmación previa, necesitas eliminarlo del historial del repositorio. Para quitar archivos del historial del repositorio, se recomienda el comando git filter-repo. Para obtener más información, consulta Eliminación de datos confidenciales de un repositorio.
Como alternativa, si no quieres instalar una herramienta adicional, puedes usar una base interactiva para quitar confirmaciones problemáticas. Para ello, siga estos pasos:
- Debes saber qué commits agregaron o modificaron el archivo en cuestión.
- Los commit(s) deben formar parte de solo una rama.
- La rama a la que pertenecen las confirmaciones no debe tener fusiones desde que se aplicaron.
Para obtener más información sobre los rebases interactivos, consulta Utilizar la rebase de Git en la línea de comando. Si no estás seguro de si cumples las condiciones necesarias para ajustar con un rebase interactivo, debes usar
git filter-repo.
Distribuir archivos binarios grandes
Si necesita distribuir archivos grandes dentro del repositorio, puede crear versiones en GitHub.com. Los lanzamientos te permiten empaquetar el software, notas de lanzamiento y enlaces a los archivos binarios para que otras personas puedan utilizarlos. Para obtener más información, consulta Acerca de los lanzamientos.
No limitamos el tamaño total de los archivos binarios en los lanzamientos o anchos de banda que se utilizan para entregarlos. Sin embargo, cada archivo individual debe ser menor que el límite máximo de tamaño de archivo para Git LFS en su plan. Consulte Acerca del Almacenamiento de Archivos Grandes de Git.