Wo sind git-lfs-Dateien gespeichert?
Ich versuche herauszufinden, wie Sie mithilfe von git-lfs. Ich benutze ein gitlab EE-server.
Vielleicht habe ich etwas verpasst, aber ich konnte nicht finden, keine Dokumentation auf der git-lfs über sehr kurze tutorial-die Einführung der "track" - Befehl und niedliche 1-Minuten-videos.
Ich zum Beispiel hinzufügen und verfolgen eine 3,7 GB tar-Datei im repo, und schieben Sie es:
git lfs track "*.tar"
cp <a folder>/a.tar .
git add a.tar
git commit -m "add a.tar"
git push origin master
Frage 1: am Ende dieses Prozesses hat.tar hochgeladen wurde, auf der gitlab-server ? Es ist unklar, wie Sie die "add" und "commit" - Befehle dauerte einige Zeit, (vielleicht nicht lange genug, um mich zu Fragen, ob die 3,7 GB hochgeladen wurden während dieser Zeit), aber der push haben nicht alle Zeit (Bruchteil von Sekunde).
Frage 2: wenn die Datei hochgeladen wurde auf dem server, wo ? Natürlich nicht an der gleichen Stelle wie der repo (das ist der Punkt). Fragte ich, weil mein server wird gesichert, und ich muss wissen, ob die Verwendung von git-lfs verlangt von mir zu aktualisieren, dies in keiner Weise.
Frage 3: wurde die Datei nicht hochgeladen wird, bedeutet dies, dass andere Nutzer der repo bekommen einen link zu der Datei auf dem ursprünglichen Computer, auf dem die Datei Hinzugefügt wurde ? Gibt es eine Möglichkeit, dies zu ändern, um einen Speicherort auf dem server ? (zurück zu Frage 2)
Frage 4: nach dem Klonen der repo, die in der Tat die volle 3,4 G-Datei ist es nicht, "nur" eine Textdatei mit dem Inhalt:
version https://git-lfs.github.com/spec/v1
oid sha256:4bd049d85f06029d28bd94eae6da2b6eb69c0b2d25bac8c30ac1b156672c4082
size 3771098624
Dies ist natürlich genial und der ganze Punkt. Aber was ist, wenn vollen Zugriff auf die Datei erforderlich ist ? wie es herunterladen ?
Ich wäre glücklich mit entweder direkte Antwort auf diese Frage oder ein link in Richtung auf eine ordnungsgemäße Dokumentation.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Antwort 1
Wie bereits in dieses video (bei 1:27), wenn Sie drücken Sie eine Datei verfolgt von
git lfs
Sie abgefangen und auf einem anderen server, so dass ein Zeiger in Ihr git-repository. Wie sehen Sie in der Referenz, die Sie in der Antwort auf Frage 4, dieser arbeitete für Sie.Antwort 2
Dies ist ein wenig komplizierter. Lesen Sie die Dokumentation für
git lfs smudge
haben wir:Den
git lfs
Endpunkt gefunden werden kann, die aus der Ausgabe vongit lfs env
. Mein "Endpunkt" ist ein Ordner unter (aber nicht in) meinem repository, das macht mich denken, dass GitLab erstellt ein git-repository auf dem server auf unserem Konto sein Raum zum speichern von binären Dateien.Sagte, ich weiß nicht, wie würden Sie gehen über überzeugen. GitHub bietet eine
git lfs
server, die "nicht in einem Produktionsreifen Zustand," so würde es erfordern einige Arbeit auf Ihrem Teil, um es einzurichten, so dass Ihre binäre Dateien werden auf einen server hochgeladen, die Sie verwalten. Wenn das sichern dieser Dateien ist eine Priorität, und Sie nicht möchten, verwenden Sie eine der Implementierungen (Amazon S3, etc.), könnten Sie versuchen, eine andere binary-file-storage-system, das arbeiten mit git, wiegit-media
,git-annex
,git-fat
,git-bigstore
.... Ich habe nicht geschaut in diese Optionen in die Tiefe, so konnte Sie nicht machen eine Empfehlung.Antwort 3
Wenn die Datei wurde nicht hochgeladen werden, indem
git lfs
es gewesen wäre, schob mitgit
und Sie haben eine binary-Datei in Ihr git-repository. Aber Ihnen wurde hochgeladen mitgit lfs
wie Sie sagen, in Frage 4.Antwort 4
Anderen Benutzern des Repositorys nach der Installation
git lfs
auf Ihren lokalen Maschinen, geben Sie einfachgit lfs pull
zu bringen und in die binäre Datei(en), die Sie schob mitgit lfs
.git lfs pull
war, was ich suchte. 🙂 Vielen Dank! (neue git-lfs)git lfs pull
für mich gearbeitet. Aber was nun, wenn ich wollen, konvertieren Sie Sie zurück an den Pointer? Würdegit lfs push
Arbeit?