Ist der Git-Anhang für mein Szenario geeignet?

7

Ich habe ein Git-Repository mit Quellcodes, die ich auf Github öffnen möchte.

Ich habe jedoch auch Gigabyte an Daten, die ich nicht im Freien und im Repo haben möchte - sie sind groß, sie sind proprietär, sie sind mit Urheberrechten "belastet" und so weiter. Diese sind jedoch logischerweise auch "Teil desselben Projekts" und ich möchte eine gewisse Kontrolle über ihre Geschichte haben (im Grunde, was Git bereits tut).

Im Moment habe ich sie im Verzeichnis "Daten" im Repository und ich habe das Verzeichnis ignoriert und ich trete zurück, um sie zu Git zu bringen.

Ich habe jedoch über Git-Annex gelesen und es scheint, dass es tun kann, was ich will. Ich habe also zwei Fragen.

  • Ist der Git-Anhang für mich geeignet?
  • Wie genau sollte ich den Git-Anhang für mein Szenario verwenden? Bedeutung - welche Befehle soll ich wie verwenden?

    Ich habe versucht, die offizielle Dokumentation zu lesen, aber es geht um Anwendungsfälle, die mir egal sind. Ich habe die Daten nur auf einem Computer und ich glaube nicht, dass ich sie bald verschieben werde (es ist schön, die Möglichkeit zu haben, aber es ist nicht der Grund, warum ich den Git-Anhang verwenden möchte). Außerdem ist die Dokumentation ziemlich schwer zu lesen.

Karel Bílek
quelle

Antworten:

5

Git-Annex könnte Ihnen in der Tat bei großen binären Datenblobs helfen. Ich denke, Sie sollten jedoch in Betracht ziehen, dies nicht in dasselbe Repository wie das mit Ihrem Quellcode zu stellen. Man müsste viele Daten herunterladen, um sein Repository zu klonen, und es wird schwierig sein, Speicherplatz zurückzugewinnen, wenn diese großen Dateien irgendwann aktualisiert werden.

Daher schlage ich vor, einen Blick auf Git-Submodule zu werfen und /dataein Submodul für ein anderes Repository zu erstellen, das hauptsächlich oder nur Git-Annex-Daten enthält.

Ich denke, dieser Ansatz wird dazu beitragen, Ihr Quellcode-Repository sauber und schnell zu halten, bietet jedoch eine Möglichkeit, die Versionskontrolle in gewissem Maße für die großen binären Blobs zu verwenden.

Bearbeiten / Aktualisieren: Ich denke, es macht eigentlich keinen großen Unterschied, ob Sie ein Submodul dafür erstellen oder nicht. Am Ende ist es nur ein Git-Anhang, und Benutzer können die Dateien bei Bedarf herunterladen. Es gibt nichts, was standardmäßig alle Dateien auf dem Klon herunterlädt.

gertvdijk
quelle
Meine derzeitige Organisation verwendet auf diese Weise Submodule. Es ist eine vernünftige Lösung.
pjmorse