Website-Suche

So sichern Sie Ihre Git-Repositories mit gickup


Git ist bei weitem das am häufigsten verwendete Versionskontrollsystem, das es gibt. Ursprünglich von Linus Torvalds entwickelt, handelt es sich um freie Open-Source-Software, die unter der GPLv2-Lizenz veröffentlicht wurde. Viele Online-Plattformen wie Github oder Gitlab ermöglichen es Entwicklern, Änderungen in ihrem Code einfach in öffentlichen oder privaten Repositories zu speichern und zu verfolgen, indem sie Git als Backend verwenden.

In diesem Artikel sprechen wir über gickup, ein nettes Tool, das in Go geschrieben wurde und es uns ermöglicht, Backups unserer Git-Repositories zu erstellen und sie lokal oder von einer Plattform auf eine andere zu spiegeln.

In diesem Tutorial lernen Sie:

  • So installieren Sie gickup
  • So sichern Sie Ihre Repositories lokal
  • So spiegeln Sie Github-Repositories auf Gitlab

Installation

Gickup ist eine Open-Source-Software: Ihr Code wird selbst auf Github gehostet. Zum Zeitpunkt des Schreibens ist das Tool noch in keinem Linux-Distributions-Repository verfügbar, daher gibt es im Grunde zwei Möglichkeiten, wie wir es verwenden können, wenn wir es nicht kompilieren möchten:

  • durch Herunterladen der vorkompilierten Binärdatei von Github
  • unter Verwendung des dedizierten Docker-Images

Lassen Sie uns diese Optionen untersuchen.

Verwenden der vorkompilierten Binärdatei

Zum Zeitpunkt des Schreibens ist 0.10.17 die neueste verfügbare Version von gickup; Wir können die vorkompilierte Binärdatei von der Releases-Seite des Projekts auf Github herunterladen. Es gibt vorkompilierte Binärdateien für alle wichtigen Betriebssysteme und für die gängigsten Architekturen. Wir wollen die Linux-Version natürlich zusammen mit der *checksum.txt-Datei herunterladen, um die Integrität der Daten zu überprüfen. Um gickup auf meinem Rechner auszuführen, muss ich die Version "amd64" herunterladen:

curl --location --remote-name-all https://github.com/cooperspencer/gickup/releases/download/v0.10.17/{gickup_0.10.17_linux_amd64.tar.gz,gickup_0.10.17_checksums.txt}

Um die Tarball-Prüfsumme unter der Annahme, dass sich die beiden Dateien im selben Verzeichnis befinden (wie es sich aus dem Ausführen des obigen Befehls ergeben würde), können wir Folgendes ausführen:

sha256sum -c gickup_0.10.17_checksums.txt

Wenn die Prüfsumme des Tarballs mit der in der Datei geschriebenen übereinstimmt, sollten wir eine Meldung ähnlich der folgenden sehen:

gickup_0.10.17_linux_amd64.tar.gz: OK

Um den Tarball zu extrahieren, führen wir Folgendes aus:

tar -xvzf gickup_0.10.17_linux_amd64.tar.gz

Um die Anwendung zu verwenden, müssen wir nur die extrahierte Binärdatei wie jede andere ausführbare Datei starten, indem wir den Pfad der Konfigurationsdatei (mehr dazu gleich) als erstes Argument übergeben:

./gickup /path/to/conf.yml

Verwenden des dedizierten Docker-Images

Wenn wir die vorkompilierte Binärdatei nicht verwenden möchten, können wir alternativ die docker-compose.yml Datei herunterladen und das Tool in einem Container ausführen, indem wir docker oder podman verwenden. Wir können die Datei direkt von der Befehlszeile herunterladen:

curl --remote-name https://raw.githubusercontent.com/cooperspencer/gickup/main/docker-compose.yml

Der nächste Schritt besteht darin, die Konfigurationsdatei, die in diesem Fall den Namen conf.yml haben muss, in das gleiche Verzeichnis zu legen wie die Datei, die wir gerade heruntergeladen haben. Um das Backup zu starten, müssen wir nur Folgendes ausführen:

sudo docker-compose up

Oder, wenn Sie podman anstelle von docker verwenden:

podman-compose up

Wenn Sie docker verwenden und Ihr Benutzer in der Gruppe "docker" ist, können Sie die Verwendung von sudo weglassen. Podman hingegen kann ohne Root-Rechte ausgeführt werden.

Das sind die Anweisungen, die wir verwenden können, um gickup auszuführen. Wir können über die oben erwähnte Konfigurationsdatei festlegen, was das Tool tun soll und wie es es tun soll. Sehen wir uns ein Beispiel für seine Verwendung an.

Sobald das Token generiert ist, notieren Sie es sich, da Sie es in Zukunft nicht mehr visualisieren können.

Der nächste Schlüssel, den ich in der Konfigurationsdatei verwendet habe, ist username, um den Benutzer für den Klonprozess anzugeben. Mit dem Zielwörterbuch habe ich stattdessen das Ziel der Sicherungen angegeben. Da ich in diesem Fall wollte, dass die Repositories lokal geklont werden, habe ich den Pfadschlüssel verwendet, um einen lokalen Pfad anzugeben, und den strukturierten Schlüssel, um gickup dazu zu bringen, die Repositories in einem Verzeichnisbaum zu klonen, der die Quellwebsite und den Benutzernamen widerspiegelt. In diesem Fall werden die auf Github gehosteten Repositories im Verzeichnis ~/Downloads/gitbackup/github.com/egdoc geklont.

Der Zip-Schlüssel wird verwendet, um anzugeben, dass jedes geklonte Repository gezippt werden soll. keep wird stattdessen verwendet, um anzugeben, wie viele "gezippte" Backups aufbewahrt werden sollen. Schließlich habe ich durch Festlegen des Werts des Bare-Schlüssels auf true angegeben, dass die Repositorys als "Bare" geklont werden sollen.

Repositories von einer Plattform auf eine andere spiegeln

Im vorherigen Beispiel habe ich alle meine Repositorys, die auf Github gehostet werden, auf meinem lokalen Computer geklont. Durch die Verwendung von gickup können wir Repositories jedoch auch direkt von einer Plattform auf eine andere klonen. Angenommen, ich möchte alle Repositories nach Gitlab spiegeln. Hier ist, was ich schreiben könnte:

source:
  github:
    - token: <github-token>
      username: egdoc

destination:
  gitlab:
    - token: <gitlab-token>
      username: egdoc

In allen Beispielen, die Sie sehen können, habe ich nur den Plattformnamen (z. B. "github" oder "gitlab") und nicht die vollständige Plattform-URL angegeben. Dies ist möglich, weil gickup eine integrierte Unterstützung für diese Plattformen bietet. Plattformen, die als Quelle unterstützt werden, sind:

  • Github (Englisch)
  • Gitea
  • Schutzbrillen
  • Gitlab
  • Bitbucket (Englisch)
  • Onedev
  • Sourcehut

Darüber hinaus kann die Taste "Beliebig" verwendet werden, um Informationen über Plattformen anzugeben, die nicht in der obigen Liste enthalten sind.

Plattformen, die stattdessen als Ziel unterstützt werden, sind:

  • Gitea
  • Schutzbrillen
  • Gitlab
  • Lokal

Schlüsse

In diesem Tutorial haben wir über gickup gesprochen, ein nettes Open-Source-Tool, das in Go geschrieben wurde und mit dem wir unsere Git-Repositories lokal oder von einer Webplattform auf eine andere spiegeln können. Wir haben zwei kleine Beispiele dafür gegeben, wie man beide Ergebnisse erreichen kann; Um mehr über das Projekt zu erfahren, können Sie einen Blick in die offizielle Dokumentation werfen.

Verwandte Artikel: