GitHub stellte am 27. Juni 2017 Git LFS 2.2.0 mit dem neuen Befehl git lfs migrate vor. Die Git-Erweiterung kann damit große Dateien aus bestehenden Commit-Historien in LFS überführen. Das betrifft etwa ein Repository, dessen Übertragung wegen bereits eingecheckter großer Dateien scheitert.
Die Release Notes zu Version 2.2.0 unterscheiden die Bestandsanalyse mit git lfs migrate info von der Umstellung mit git lfs migrate import. Beim Import werden Commits neu geschrieben. Die Veröffentlichung warnt ausdrücklich vor möglichen Fehlern und Leistungsproblemen dieses ersten Migrationsansatzes, besonders bei langen Historien.
Migration verändert Commits und Dateimuster
Die zur Version 2.2.0 gehörende Befehlsdokumentation beschreibt Filter für einzubeziehende und auszuschließende Pfade sowie Referenzen. Ohne ausdrückliche Branch- oder Referenzauswahl wird der gerade ausgecheckte Branch verwendet. Der Import kann außerdem .gitattributes um Dateimuster ergänzen. Eine Auswahl bestimmter Dateiendungen ist deshalb keine Zusage, dass sämtliche Branches umgestellt werden.
Für ein Team folgt daraus ein eigener Umstellungsplan: Sicherung, Testlauf und die Abstimmung der betroffenen Historien müssen vor dem gemeinsamen Weiterarbeiten feststehen. Ein erfolgreicher lokaler Import allein belegt nicht, dass bestehende Arbeitskopien, CI-Jobs und der externe LFS-Speicher zusammenpassen. Diese Prüfpunkte sind redaktionelle Folgerungen, keine im Release gemessenen Verbesserungen.
JSON-Status und Fehler beim Übertragen
Zusätzlich nennt die Version eine JSON-Ausgabe für git lfs status und Wiederholungen nach Zeitüberschreitungen oder vorübergehenden Fehlern. Die strukturierte Statusausgabe kann von Skripten ausgewertet werden, statt Informationen aus einem für Menschen formatierten Text herauszulösen.
Bereits 2015 hatte GitHub Git LFS für große Binärdateien wie Grafiken, Audio und Videos vorgestellt. Solche Assets gehören auch zu Spieleproduktionen. Die Erweiterung ersetzt deren Inhalte in Git durch Verweise; sie macht binäre Arbeitsdateien nicht automatisch textuell zusammenführbar.
Archivhinweis: Beschrieben ist die Veröffentlichung von Juni 2017. Die verlinkte Befehlsdokumentation ist auf den damaligen Versionsstand festgelegt, keine aktuelle Integrationsanleitung.

