Zum Hauptinhalt springen Zur Navigation springen Zur Fußzeile springen
Begrenzte Zeit: Design Partner Programm — BUSINESS Plan auf Lebenszeit

Ein Repository forken

Klonen Sie ein gesamtes Repository (App, Datenbank, Dateien) in Sekunden. Beliebige Größe. Null zusätzlicher Speicher.

Ein Repository forken

Das ist das Killer-Feature: Eine gesamte Produktionsumgebung (die App, die Datenbank, die Konfigurationsdateien) in Sekunden klonen. Beliebige Größe. Null zusätzlicher Speicher. So oft forken, wie Sie möchten.

Der Leitspruch: Produktion klonen, nichts kaputt machen.

Tutorial ansehen

Etwas zum Verlieren einrichten

Geben Sie der laufenden App zunächst eine Datei, damit Sie die Isolation des Forks beweisen können. Öffnen Sie das Repo in VS Code:

rdc vscode connect -m my-server -r my-app

Erstellen Sie im Repo eine Markierungsdatei:

time echo "Hello from production" > index.html

Jetzt forken.

Forken

time rdc repo fork --parent my-app -m my-server --tag experiment --up

Der Parent verzweigt sich in unabhängige Klone

Ein Befehl. Alles wurde geklont (die App, die Datenbank, die Konfigurationsdateien), und es dauerte Sekunden. Führen Sie es erneut aus und Sie erhalten einen weiteren unabhängigen Klon.

Warum ist es so schnell?

Das Teilen eines Ordner-Links ist gleich schnell, unabhängig von der Größe des Ordners

Stellen Sie sich vor, Sie teilen einen Ordner-Link. Der Link ist gleich, egal ob der Ordner klein oder riesig ist. Der Ordner ist schwer, der Link ist leicht.

1 GB, 100 GB, 1 TB. Immer die gleiche Zeit.

Forken funktioniert genauso. 1 GB, 100 GB, 1 TB. Immer die gleiche Zeit.

Was geteilt wird, was Ihnen gehört

Viele Spiegel, eine Sonne: gemeinsame Basis, Ihre Änderungen gehören Ihnen

Stellen Sie sich das Parent-Repo als die Sonne vor. Sie können die Sonne nicht festhalten, aber Sie können einen Spiegel halten, der sie auffängt. Dieser Spiegel ist Ihr Fork. Malen Sie auf den Spiegel, und Ihre Zeichnungen gehören Ihnen. Die Sonne bleibt gleich, egal wie viele Spiegel ihr gegenüberstehen.

Sie können die Sonne nicht festhalten, aber Sie können sie in einem Spiegel halten.

Was, wenn der Parent sich später ändert?

Ein Fork ist ein eingefrorenes Foto; der Parent fließt weiter wie ein Fluss

Denken Sie jetzt an einen Fluss. Das Wasser fließt weiter. In jedem Moment ist es anders. Wenn Sie forken, machen Sie ein Foto des Flusses, eingefroren in diesem Moment. Der Fluss fließt weiter. Ihr Foto nicht.

Wenn sich das Parent-Repo später ändert, bleibt Ihr Fork dort, wo er war.

Sie können einen Fluss nicht festhalten, aber Sie können ihn in einem Foto festhalten.

Speichernutzung bleibt konstant

Fünf Forks eines 100-GB-Repos, insgesamt immer noch etwa 100 GB

Deshalb läuft Ihr Speicher nicht voll. Fünf Forks eines 100-GB-Repos? Insgesamt immer noch etwa 100 GB. Sie zahlen nur Speicher für das, was Sie in jedem Fork ändern.

Forken Sie fünfmal, wenn Sie möchten. Ihr Speicher wird es kaum bemerken.

Was Forks nicht erben: Secrets

Es gibt eine Sache, der der Fork bewusst nicht folgt: Secrets. Ein Fork startet ohne API-Schlüssel, ohne Datenbankpasswörter, ohne Stripe-Tokens. Deshalb funktioniert “Produktion klonen, nichts kaputt machen” wirklich. Ihre Sandbox kann keine echten Kunden belasten, weil sie nicht so tun kann, als wären Sie es. Das richten wir ordentlich im Tutorial Secrets verwalten ein.

Isolation verifizieren

Beide Repos nebeneinander auflisten:

time rdc repo list -m my-server

Sie sehen my-app und my-app:experiment, die gleichzeitig laufen.

Im Original-Repo prüfen, was läuft:

time docker ps

Notieren Sie die Betriebszeit. Das sind die Original-Container. Jetzt zum Fork wechseln:

rdc vscode connect -m my-server -r my-app:experiment
time docker ps

Gleiche Images, aber die Betriebszeit ist frisch. Diese wurden gestartet, als der Fork erstellt wurde.

Den Unterschied noch deutlicher machen. Einen Container nur zum Fork hinzufügen:

time docker run --rm -it -d nginx
time docker ps

Nginx läuft, aber nur innerhalb dieses Forks.

Etwas Destruktives versuchen:

time rm index.html

Hier weg. Jetzt zurück zum Original:

rdc vscode connect -m my-server -r my-app
time docker ps

Kein nginx. Die Container des Forks blieben im Fork. Und index.html ist noch hier, unberührt. Das Original hat nie etwas davon mitbekommen. Gleiche Images, getrennte Docker-Daemons, getrennte Dateisysteme.

Aufräumen

Wenn Sie fertig sind, löschen Sie einfach den Fork:

time rdc repo delete --name my-app:experiment -m my-server

Das Original bleibt genau so, wie es war. Forken, experimentieren, Dinge kaputtmachen, löschen. Kein Risiko.


Weiter: Secrets verwalten.