Basierend auf this answer es scheint, dass Github, zumindest nicht das Repository nicht kopieren, wenn es gegabelt. Stattdessen werden neue Zweige mit vorangestellten Benutzernamen erstellt (z. B. anstelle von master
würde mein verzweigter Hauptzweig als lightcc.master
referenziert).
Dies ist sehr sinnvoll im Zusammenhang damit, wie Git Dateien speichert und sie referenziert und warum es Repos so effizient speichern kann. Wenn ein Fork eine perfekte Kopie eines Repos ist, müssen Sie nur neue Zweige erstellen (Tracking-Verweise) und verfolgen, wer berechtigt ist, sie zu sehen und an sie zu ziehen/von ihnen zu ziehen. Wenn ich einen Repo ausgreife, aber niemals eine Änderung daran mache, könnten meine Tracking-Referenzen hinter dem Upstream-Repo stehen, aber sie werden immer dieselben sein wie diese alten Commits (es sei denn, das ursprüngliche Repo macht einige sehr schlechte Dinge [tm] und schreibt seine Geschichte durch Rebasing, Squashing usw. in bestehende Commits um).
Mit anderen Worten, zum Zeitpunkt eines ursprünglichen Forks muss keiner der ursprünglichen Repos kopiert werden, so dass die einzigen Kosten die Bytes sind, die benötigt werden, um die neuen Verfolgungsreferenzen zu erstellen, die ~ 40 Bytes pro vorhandenem Zweig sind. Und es kann sogar sein, dass es keine neuen Referenzen geben kann, bis Sie tatsächlich vom ursprünglichen Repo abweichen (oder bis Sie eine Tracking-Referenz eingerichtet und für eine bestimmte Verzweigung zu Ihrer Verzweigung hochgeschoben haben - also ist Master wahrscheinlich automatisch?).
Angesichts der Kommentare scheint es, dass dies ist, was Github tut, und daher Gitlab Akt tatsächlich replizieren die Repo (per 0xcaffs Antwort) ist eher eine Unix-Gabel, wo ein Duplikat-Prozess erstellt wird. Github möchte in einer sehr agilen Art und Weise bis zum letzten möglichen Moment warten, um irgendwelche neuen Objekte zu erzeugen, da eine Gabelung vom ursprünglichen Repo abweicht.
Dies ist wahrscheinlich der Grund, warum Github einige Regeln hat, um einen Fork vollständig von einem Original-Repo zu trennen, und warum Support benötigt wird. Dadurch werden sie Speicherplatz kosten und wenn sie dies alles leicht und kostenlos tun, können sie im Laufe der Zeit viel Speicherplatz verbrauchen.