Veit Schiele Communications

Veit Schiele Communications

Git LFS

Git Large File Storage (Git LFS) ist eine Open-Source-Erweiterung für Git, mit der sich große Dateien versionieren lassen.
erstellt von Veit Schielezuletzt verändert: 28.06.2017 11:15 © Veit Schiele 2012–2017

Installation

Requirements

Git LFS erfordert git ≥ 1.8.2.

  1. Herunterladen und Installieren von Git LFS für alle Repositories des Nutzers mit:

    $ git lfs install
    

    Soll Git-lfs nur für einzelne Repositories des Nutzers zur Verfügung stehen, sollte stattdessen

    $ git lfs install --local
    

    aufgerufen werden.

  2. Wählen Sie die Dateitypen aus, die Git LFS verwalten soll:

    $ git lfs track "* .psd"
    

    Alternativ können Sie auch .gitattributes direkt bearbeiten.

  3. Stellen Sie sicher, dass .gitattributes versioniert wird:

    $ git add .gitattributes
    

Migration

Ab Git LFS Version 2.2.0 gibt es den git-lfs-migrate-Befehl, sodass bestehende Repositories einfacher umgewandelt werden können.

Falls Sie versucht haben, eine große Datei auf GitHub ohne LFS zu schieben, sehen Sie z.B. folgenden Fehler:

$ git push origin master
…
remote: error: gh001: large files detected. you may want to try git large file storage - https://git-lfs.github.com.
remote: error: see http://git.io/iept8g for more information.
remote: error: file my.psd is 1.7 gb; this exceeds github's file size limit of 100.00 mb

System Message: WARNING/2 (<string>, line 68)

Literal block ends without a blank line; unexpected unindent.
to github.com:veit/demo.git
! [remote rejected] master -> master (pre-receive hook declined)

System Message: WARNING/2 (<string>, line 70)

Block quote ends without a blank line; unexpected unindent.

error: failed to push some refs to 'git@github.com:veit/demo.git'

Sie können git lfs migrate info verwenden, um zu sehen, welche Dateien den Fehler verursachten:

$ git lfs migrate info
*.psd   1.7 GB   5/5 files(s)  100%

Mit den obigen Informationen können Sie feststellen, welche Dateien aus Ihrem Verlauf herausgezogen und in LFS gespeichert werden sollten:

$ git lfs migrate import --include="*.psd"
migrate: Sorting commits: ..., done
migrate: Rewriting commits: 100% (312/312), done
  master        f18bb746d44e8ea5065fc779bb1acdf3cdae7ed8 -> 35b0fe0a7bf3ae6952ec9584895a7fb6ebcd498b
migrate: Updating refs: ..., done

$ git push origin
Git LFS: (1 of 1 files) 1.7 GB / 1.7 GB
…
To github.com:veit/demo.git
 * [new branch]      master -> master

Sie können auch den Befehl import auch konfigurieren, um bestimmte Dateitypen, Branches und vieles mehr zu migrieren. Für eine detaillierte Übersicht werfen Sie einen Blick auf die man-Seite.

Weitere Informationen