Effiziente Speicherung von Binärdateien in einem Git-Repository

8

Ich hätte gerne ein Git-Repository, das hauptsächlich aus Binärdateien besteht.

Ich muss die geänderten, hinzugefügten und entfernten Dateien im Repository nachverfolgen, aber ich möchte nicht, dass git den Inhalt der Dateien selbst versioniert.

Mit anderen Worten, ich brauche nur für git, um Änderungen zu verfolgen (Änderungsprotokoll), aber nicht den Inhalt.

Ist das überhaupt möglich mit git?

Sollte ich etwas anderes dafür verwenden?

    
Dema 28.04.2009, 19:33
quelle

5 Antworten

9

git ist ein Inhalts-Tracker. Wenn Sie also keine Inhalte verfolgen möchten, klingt es so, als wäre es das falsche Werkzeug für den Job. Ich bin mir nicht sicher, wie Sie Änderungen an Dateien verfolgen würden, ohne deren Inhalt zu verfolgen.

    
Charles Bailey 28.04.2009, 19:37
quelle
13

Von @ Tobus Antwort bis zu diesem verwandte Frage :

  

Um binäre Dateien zu versionieren und zu verbreiten, ohne sie tatsächlich in git zu speichern, versuchen Sie git-annex .

    
toolbear 21.04.2011 22:21
quelle
2

Wenn Sie die Bins nicht speichern möchten, können Sie ein binäres Diff-Tool für die Dateien verwenden und dann die Ausgabe in die Versionskontrolle überführen. Alle Textänderungsprotokolleinträge können dann in die Übergabenachricht eingegeben werden.

    
Dana the Sane 28.04.2009 20:04
quelle
1

Vielleicht verstehe ich Ihre Frage nicht, aber was, wenn Sie den Zeitstempel aller Dateien in einer Textdatei speichern? Dann könnten Sie nur diese Datei in der Versionskontrolle speichern und Ihr VCS die verschiedenen Versionen davon unterscheiden lassen.

    
Daniel Fanjul 29.04.2009 08:46
quelle
0
  

aber ich möchte nicht, dass git den Inhalt der Dateien selbst versioniert.

Genau das ist Git Large File Storage (LFS) (von GitHub, April 2015).

Das Projekt ist git-lfs (siehe git-lfs.github.com ) und ein mit dem Server getesteter Server: lfs-test-server :
Sie können Metadaten nur im git-Repository und die große Datei an anderer Stelle speichern.

  
  • Große Dateien werden separat über HTTPS mit einem konfigurierbaren Git LFS-Server synchronisiert. Sie sind also nicht darauf beschränkt, wohin Sie Ihr Git-Repository schieben.

  •   
  • Große Dateien werden nur dann vom Server synchronisiert, wenn sie ausgecheckt sind. Ihr lokales Repository trägt nicht das Gewicht jeder Version jeder Datei, wenn sie nicht benötigt wird.

  •   
  • Die Metadaten in Git gespeichert sind erweiterbar für die zukünftige Verwendung. Es enthält derzeit einen Hashwert für den Inhalt der Datei und die Dateigröße, damit Clients beim Herunterladen oder beim Ablehnen eines großen Downloads eine Fortschrittsanzeige anzeigen können.

  •   
    
VonC 09.04.2015 05:59
quelle

Tags und Links