subir - git for files
¿Dónde se almacenan los archivos git-lfs? (1)
Respuesta 1
Como se explica en
este video
(en 1:27), cuando inserta un archivo rastreado por
git lfs
, es interceptado y colocado en un servidor diferente, dejando un puntero en su repositorio de git.
Como puede ver en la referencia que proporciona en la Pregunta 4, esto funcionó para usted.
Respuesta 2
Esto es un poco más complicado.
Leyendo la documentación para
git lfs smudge
, tenemos:
Lea un archivo de puntero Git LFS desde la entrada estándar y escriba el contenido del archivo grande correspondiente en la salida estándar. Si es necesario, descargue el contenido del archivo desde el punto final de Git LFS. El argumento, si se proporciona, solo se usa para una barra de progreso.
El punto final
git lfs
se puede encontrar en la salida de
git lfs env
.
Mi "punto final" es una carpeta debajo (pero no en) mi repositorio, lo que me hace pensar que GitLab crea un repositorio git en el servidor en nuestro espacio de cuenta para almacenar archivos binarios.
Dicho esto, no sé cómo harías para respaldar esto.
GitHub proporciona un
servidor
git lfs
que "no está en un estado listo para producción", por lo que requerirá un poco de trabajo de su parte para configurarlo de modo que sus archivos binarios se carguen en un servidor que usted administra.
Si hacer una copia de seguridad de estos archivos es una prioridad y no desea utilizar una de las
implementations
(Amazon S3, etc.), puede probar con otro sistema de almacenamiento de archivos binarios que funcione con git, como
git-media
,
git-annex
,
git-fat
,
git-bigstore
... No he
git-bigstore
estas opciones en profundidad, así que no pude hacer una recomendación.
Respuesta 3
Si el archivo no se cargó usando
git lfs
, se habría empujado usando
git
y tendría un archivo binario en su repositorio de git.
Pero, el tuyo se cargó usando
git lfs
como dices en la
Pregunta 4
.
Respuesta 4
Otros usuarios de su repositorio, después de haber instalado
git lfs
en sus máquinas locales, simplemente pueden escribir
git lfs pull
para traer los archivos binarios que presionaron usando
git lfs
.
Estoy tratando de descubrir cómo usar git-lfs. Yo uso un servidor gitlab EE.
Tal vez me perdí algo, pero no pude encontrar ninguna documentación en git-lfs más allá del tutorial muy breve que presenta el comando "track" y lindos videos de 1 minuto.
Por ejemplo, agrego y rastreo un archivo tar de 3.7GB en un repositorio y lo envío:
git lfs track "*.tar"
cp <a folder>/a.tar .
git add a.tar
git commit -m "add a.tar"
git push origin master
Pregunta 1 : al final de este proceso, ¿se ha cargado a.tar en el servidor gitlab? No está claro ya que los comandos "agregar" y "confirmar" tomaron algún tiempo (tal vez no lo suficiente como para dejarme preguntarme si los 3.7GB se cargaron durante ese tiempo), pero el impulso no tardó en absoluto (una fracción de segundo).
Pregunta 2 : si el archivo se cargó en el servidor, ¿dónde? Obviamente no en el mismo lugar que el repositorio (ese es el punto). Pregunté porque mi servidor está siendo respaldado, y necesito saber si el uso de git-lfs requiere que actualice esto de alguna manera.
Pregunta 3 : si el archivo no se cargó, ¿significa esto que otros usuarios del repositorio obtendrán el enlace al archivo en la máquina original en la que se agregó el archivo? ¿Hay alguna manera de cambiar esto a una ubicación en el servidor? (volver a la pregunta 2)
Pregunta 4 : después de clonar el repositorio, de hecho el archivo completo 3.4G no está allí, "solo" un archivo de texto con el contenido:
version https://git-lfs.github.com/spec/v1
oid sha256:4bd049d85f06029d28bd94eae6da2b6eb69c0b2d25bac8c30ac1b156672c4082
size 3771098624
Por supuesto, esto es increíble y el punto completo. Pero, ¿qué pasa si se requiere acceso al archivo completo? como descargarlo
Estaría contento con la respuesta directa a esta pregunta o con un enlace hacia una documentación adecuada.