Ich versuche, Code von Github (git pull origin master
) auf unseren Server zu ziehen.Git ziehen - Schmierfilter lfs fehlgeschlagen
Dies funktionierte vorher. Aber jetzt bin ich die folgende Fehlermeldung empfangen:
$ 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
lief ich den gleichen Befehl mit 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' '[email protected]' '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
ich meine ssh Anmeldeinformationen bestätigt korrekt sind:
$ ssh -T [email protected]
Hi user-name! You've successfully authenticated, but GitHub does not provide shell access.
Und in der Tat, ich weiß, die Anmeldeinformationen sind in Ordnung, weil die pull
wird die Datei .gitattributes
herunterbringen (zusammen mit anderen kleinen Dateiänderungen, die ich getan habe):
file.msi filter=lfs diff=lfs merge=lfs -text
Ich überprüfte Git LFS erscheint korrekt konfiguriert werden:
$ 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
...
ich diesen Github issue gefunden, und ich versuchte, alle drei Schritte:
$ 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
Der erste Schritt für meinen Benutzernamen gefragt . Also, wie es heißt, es scheint nicht, dass Git LFS irgendetwas zwischenspeichert.
Ich habe nicht viel Erfahrung mit Git LFS, und ehrlich gesagt, habe ich keine Ideen, wie Sie dieses Problem anzugehen.
Es gibt zwei Aktionen ich vor kurzem nahm die gebrochen etwas haben könnte:
- ich einen Benutzer aus unserem Repository entfernt. Der ssh-Schlüssel des Servers gehörte dem Benutzer. Wir haben einen Implementierungsschlüssel hinzugefügt, aber ich habe gelesen, dass Git LFS didn't support deployment keys (obwohl es scheint, dass Unterstützung kürzlich hinzugefügt wurde). Also haben wir zu einem Benutzerschlüssel gewechselt. Beide Schlüssel wurden mit dem
ssh -T [email protected]
Test bestätigt. Vielleicht gibt es ein Problem mit der Authentifizierung? - Ich zog das Repository auf einen Server ohne Git LFS. Ich habe es zu dem Zeitpunkt nicht bemerkt, aber die Dateien wurden auf den Zielserver übertragen. Hat dies jedoch etwas im Repository zerstört?
Jede Hilfe, die Sie verleihen könnten, würde sehr geschätzt werden.
PS - Es tut mir leid, wenn meine Anonymisierung Verwirrung verursacht. Ich ersetzte unsere tatsächliche IP-Adresse durch X.X.X.X
; unser Organisationsname mit org-name
; unser Repo Name mit repo-name
; unser Github-Benutzer mit user-name
; der Dateiname mit file.msi
; und noch ein paar Dinge.
EDIT 5/16/17: Sprache hinzugefügt, um klar zu machen, dass es früher funktioniert hat ... und dass ich es kaputt gemacht habe.
Danke für die Antwort @grandchild. Am Ende haben wir nur eine Stunde oder zwei nehmen die binären Dateien auf den Server zu bewegen mit 'scp', und wir arbeiten einen Dateiserver-System wie S3 statt Git LFS auf die Umsetzung. Ich werde weitermachen und dies als die Antwort markieren, da es ein ähnliches Problem für Sie gelöst hat. Ich bin irgendwie herumgelaufen, haha. Danke für die Antwort! – Jack