Dateien an einem Ort verwalten und mittels gt verteilen
gt -- g(it)t(ools) -- ist ein bash basiertes Tool, welches Dateien von git Repositories herunterlädt und mittels GPG verifiziert. Es ist unter der European Union Public Licence EUPL-1.2 lizenziert.
Vielleicht bist du ja in derselben Situation wie wir waren (nun ja... immer noch ein wenig sind). Viele Dateien werden über mehrere Projekte und Repositories dupliziert geführt. Angefangen bei der Lizenz-Datei, dem CODE_OF_CONDUCT.md, über Konfigurationsdateien (wie beispielsweise .editorconfig), hin zu Workflow-Dateien und Scripts. Einige von ihnen wirst du nie mehr ändern (zumindest denkst du das zum jetzigen Zeitpunkt), andere änderst du vielleicht einmal pro Jahr (z.B. das Jahr im Copyright anpassen) und wiederum andere änderst du mit Sicherheit regelmässiger.
In all diesen Situationen macht es Sinn, die Dateien an einem zentralen Ort (sprich Repository) zu pflegen, zu verwalten und sie auf irgend eine Art zu verteilen. gt kann als leichtgewichtiger Packet-Manager angesehen werden, allerdings ohne Unterstützung für Abhängigkeiten, dafür mit einem starken Sinn für Dateien-Integrität. Du kannst jedes beliebige git Repository mittels gt remote add
als Quelle verwenden und dann mittels gt pull
eine oder mehrere Dateien aus diesem Repository in dein Repository herunterladen. Ob du diese Dateien dann committest oder sie auf der .gitignore-Liste landen und deine Mitstreiter:innen sie entsprechend via gt re-pull
herunterladen, ist dir überlassen.
Mit gt update
lassen sich bereits heruntergeladene Dateien auf die neuste oder eine spezifizierte Version aktualisieren. Ein entsprechender GitHub workflow (welcher du natürlich mit gt
in dein Repository holst) übernimmt die periodische Überprüfung nach neueren Versionen und erstellt einen entsprechenden Pull-Request.
Wir hoffen gt wird die Verteilung von Dateien auch für dich erleichtern und freuen uns auf dein Feedback.