Estoy intentando extraer código en nuestro servidor desde Github (git pull origin master
).
Esto funcionó antes. Sin embargo, ahora recibo el siguiente error:
$ git pull origin master
From github.com:org-name/repo-name
* branch master -> FETCH_HEAD
Updating 8024663e..e458e5c1
fatal: path/to/file.msi: smudge filter lfs failed
Ejecuté el mismo comando con GIT_TRACE=1
:
$ GIT_TRACE=1 git pull origin master
19:25:26.331064 git.c:371 trace: built-in: git 'pull' 'origin' 'master'
19:25:26.333947 run-command.c:350 trace: run_command: 'fetch' '--update-head-ok' 'origin' 'master'
19:25:26.334661 exec_cmd.c:116 trace: exec: 'git' 'fetch' '--update-head-ok' 'origin' 'master'
19:25:26.337625 git.c:371 trace: built-in: git 'fetch' '--update-head-ok' 'origin' 'master'
19:25:26.344457 run-command.c:350 trace: run_command: 'ssh' 'git@github.com' 'git-upload-pack '\''org-name/repo-name.git'\'''
19:25:26.925565 run-command.c:350 trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
19:25:26.937016 run-command.c:350 trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
19:25:26.937833 exec_cmd.c:116 trace: exec: 'git' 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
19:25:26.941292 git.c:371 trace: built-in: git 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
From github.com:org-name/repo-name
* branch master -> FETCH_HEAD
19:25:26.994717 run-command.c:1130 run_processes_parallel: preparing to run up to 1 tasks
19:25:26.994880 run-command.c:1162 run_processes_parallel: done
19:25:26.995780 run-command.c:350 trace: run_command: 'gc' '--auto'
19:25:26.996735 exec_cmd.c:116 trace: exec: 'git' 'gc' '--auto'
19:25:27.000596 git.c:371 trace: built-in: git 'gc' '--auto'
19:25:27.002716 run-command.c:350 trace: run_command: 'merge' 'FETCH_HEAD'
19:25:27.003445 exec_cmd.c:116 trace: exec: 'git' 'merge' 'FETCH_HEAD'
19:25:27.006078 git.c:371 trace: built-in: git 'merge' 'FETCH_HEAD'
Updating 8024663e..e458e5c1
19:25:27.420945 run-command.c:350 trace: run_command: 'git-lfs filter-process'
19:25:27.470865 run-command.c:209 trace: exec: '/bin/sh' '-c' 'git-lfs filter-process' 'git-lfs filter-process'
trace git-lfs: run_command: 'git' version
trace git-lfs: run_command: 'git' config -l
trace git-lfs: Initialize filter-process
trace git-lfs: Read filter-process request.
trace git-lfs: Read filter-process request.
fatal: path/to/file.msi: smudge filter lfs failed
19:25:27.998635 run-command.c:42 trace: run_command: running exit handler for pid 18022
Verifiqué que mis credenciales ssh son correctas:
$ ssh -T git@github.com
Hi user-name! You've successfully authenticated, but GitHub does not provide shell access.
Y, de hecho, sé que las credenciales están bien, porque el pull
derribará el .gitattributes
archivo (junto con otros pequeños cambios de archivos que he hecho):
file.msi filter=lfs diff=lfs merge=lfs -text
Verifiqué que Git LFS parece estar configurado correctamente:
$ git config -l
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
...
encontré esto Problema de Githuby probé los tres pasos:
$ echo "protocol=https\nhost=github.com" | git credential fill
$ echo "protocol=https\nhost=github.com" | git credential fill | git credential reject
$ echo "protocol=https\nhost=github.com" | git credential fill | git credential approve
El primer paso me pidió mi nombre de usuario. Entonces, como dice, no parece que Git LFS esté almacenando nada en caché.
No tengo mucha experiencia con Git LFS y, francamente, no tengo ideas sobre cómo abordar este problema.
Hay dos acciones que tomé recientemente que podrían haber roto algo:
- Eliminé a un usuario de nuestro repositorio. La clave ssh del servidor pertenecía al usuario. Agregamos una clave de implementación, pero leí que Git LFS no admitía claves de implementación (aunque, parece que el soporte se agregó recientemente). Entonces, cambiamos a una clave de usuario. Ambas llaves fueron confirmadas con el
ssh -T git@github.com
prueba. Aún así, ¿quizás haya un problema de autenticación? - Bajé el repositorio a un servidor sin Git LFS. No me di cuenta en ese momento, pero los archivos se transfirieron bien al servidor de destino. Sin embargo, ¿tal vez esto rompió algo en el repositorio?
Cualquier ayuda que pueda prestar sería muy apreciada.
PD: lo siento si mi anonimización crea confusión. Reemplacé nuestra dirección IP real con X.X.X.X
; el nombre de nuestra organización con org-name
; nuestro nombre de repositorio con repo-name
; nuestro usuario de Github con user-name
; el nombre del archivo con file.msi
; y, algunas cosas más.
EDITAR 16/05/17: Se agregó lenguaje para dejar en claro que solía funcionar… y que lo rompí.