Ich beginne gerade damit, git für mein Versionskontrollsystem zu verwenden, allerdings mache ich ein gutes Stück Web-/Spieleentwicklung, bei der natürlich Bilder (Binärdaten) gespeichert werden müssen. Wenn mein Verständnis stimmt, wenn ich ein Bild festlege und es sich 100-mal ändert, wenn ich eine neue Kopie dieses Repos erhalte, würde ich im Grunde alle 100 Revisionen dieser Binärdatei auschecken?Git und binäre Daten
Ist dies nicht ein Problem mit großen Repos, bei denen sich die Bilder regelmäßig ändern, würde der erste Abruf des Repos nicht ganz groß werden? Hat irgendjemand irgendetwas in der realen Welt damit zu tun gehabt? Ich habe zum Beispiel einige Alternativen gesehen, Submodule zu verwenden und Bilder in einem separaten Repo zu halten, aber dies hält nur die Codebasis kleiner, das Image Repo wäre immer noch riesig. Im Grunde frage ich mich nur, ob es eine nette Lösung dafür gibt.
Dies ist eine Entwurfsbeschränkung von Git. Es wurde geschrieben, um eine Sache gut zu machen: Verwalten Sie den Linux-Source-Tree, der so ziemlich alles im Klartext ist. Git dreht sich alles um Diffs und Merges, Dinge, die nicht wirklich auf Bilder zutreffen.Wenn Ihre Mediendateien sehr umfangreich sind oder häufig bearbeitet werden, sollten Sie einen anderen Mechanismus verwenden, um den Verlauf dieser Dateien zu speichern. Wenn Sie nicht wirklich am Code arbeiten oder viele Zweige erstellen, sind Sie möglicherweise besser Ich benutze Git überhaupt nicht. – user57368
git wird mit binären Dateien zurechtkommen, und das System, das es für das * Speichern * von Deltas verwendet, basiert auf binärem Inhalt (die Text-Diffs, die Sie in Patches sehen, werden im laufenden Betrieb berechnet, keine Darstellung dessen, was gespeichert ist). Allerdings reduziert xdelta für komprimierte Bilder den Platzbedarf kaum. Sie können alle Ihre Bilder als XPM oder BMP speichern: p – araqnid