Skip to main content

Git-Grundlagen: Fork vs. Branch

In der Versionsverwaltung mit GitProgrammierung (z.egal B.ob aufbei GitHub,unseren GitLabGo-Projekten oder Gitea)Web-Dashboards) begegnenist unsdie ständigsaubere Trennung von Code-Ständen überlebenswichtig. Oft werden die Begriffe Fork und Branch. Obwohlsynonym beideverwendet, dazudabei dienen, isoliert an Code zu arbeiten, unterscheidenerfüllen sie sichim grundlegendWorkflow invöllig ihrerunterschiedliche Ebene und ihrem Zweck.Aufgaben.

1. WasDer ist ein Branch?Branch (DerLokaler "Abzweig")Abzweig)

Ein Branch ist ein interner Abzweig„Ast“ innerhalb eines einzigendesselben Repositorys. Man kann es sich wie einen Ast an einem Baum vorstellen: Er gehört zum selben Stamm.

  • Ebene:Einsatz: Repository-intern.Wenn du an einem neuen Feature arbeitest (z. B. eine neue Funktion in einem Go-Tool) oder einen Bug fixst.
  • Zweck:Workflow: EntwicklungDu vonerstellst Features,einen Bugfixes oder Experimenten, ohne den HauptzweckBranch (meistz. B. main oder masterfeature/dashboard-ui), zuarbeitest stören.
  • darin
  • Zusammenführung:und Wennführst die Arbeit fertig ist, wird der Branchihn per Merge oder Rebase wieder in den Hauptstamm integriert.(main) zusammen.
  • Berechtigung:Verbindung: ManDa benötigt Schreibzugriff auf das Repository, um einender Branch zuim erstellen.selben Projekt lebt, ist die Integration schnell und direkt.

Anwendungsbeispiel: Du arbeitest an deinem Projekt und möchtest ein neues Dashboard-Design testen. Du erstellst den Branch feature/new-dashboard, arbeitest dort und führst ihn später wieder mit dem Hauptprojekt zusammen.


2. WasDer ist ein Fork?Fork (Die "Kopie")Projekt-Kopie)

Ein Fork ist eine vollständigekomplette Kopie eines RepositorysProjekts auf derdeinen Ebeneeigenen des Benutzeraccounts. Es wird ein komplett neues, eigenständiges Repository erstellt, das jedoch eine Verbindung zum OriginalAccount-Bereich ("Upstream")z. hält.B. auf GitHub oder deinem eigenen Gitea).

  • Ebene:Einsatz: Account-Wenn /du Server-Ebene.mit K.I.-Agenten experimentierst. Du forkst dein eigenes Projekt, lässt die K.I. auf dieser Kopie "wildgeworden" Features einbauen, ohne dein stabiles Original-Repository zu gefährden.
  • Zweck: Ermöglicht es, an Projekten zu arbeiten, für die man keine direkten Schreibrechte hat (z. B. Open-Source-Projekte). Oder um eine völlig eigene Version eines Projekts zu starten.
  • Zusammenführung:Workflow: Änderungen aus einemim Fork werdenkönnen dem Original-Projekt meistspäter über einen Pull Request (PR)zurück ins Original fließen – oder Mergeder RequestFork (MR)wird angeboten.zur neuen Basis für ein Experiment.
  • Berechtigung:Vorteil: JederMaximale kannSicherheit. einenWenn die K.I. im Fork vondas einemCSS öffentlichenzerschießt, Repositorybleibt erstellen.dein Hauptprojekt unberührt.

Anwendungsbeispiel: Du nutzt ein Tool von einem anderen Entwickler auf GitHub. Du möchtest eine Funktion hinzufügen, hast aber keine Rechte in seinem Repo. Du machst einen Fork in deinen Account, änderst den Code und schickst ihm deine Änderungen als Pull Request.


3. DieDer HauptunterschiedeUnterschied im Überblick"Programming"-Alltag

MerkmalSituation BranchForkEmpfehlung
OrtSchnelle Korrektur an einem Go-Skript InnerhalbBranch desselben RepositorysKopie in einen anderen Accounterstellen
ZugehörigkeitExperimentelles Refactoring durch K.I. TeilFork des Original-ProjektsEigenes, unabhängiges Projekterstellen
SchreibrechteZusammenarbeit mit Externen am Wiki-Code ErfordertFork Rechte& am ProjektErfordert keine Rechte am Original
SichtbarkeitMeist für das Team gedachtOft für externe Beiträge genutzt
ZusammenführungEinfacher MergePull Request (PR)

4. WarumQuerverweise wir& beides nutzen (Workflow)Automatisierung

In modernenunserem WorkflowsSetup nutzen wir oft automatisierte Prozesse. Denkt daran:

  • Docker-Builds: Ein Push in einen Branch kann einen automatischen Build auslösen (wiesiehe Buch: Container & Runtimes).
  • Dokumentation: Wenn Agenten im Branch arbeiten, sollten sie die Änderungen direkt in den Dokumentations-Ordner notieren, damit unser Wiki hier aktuell bleibt.

So baust du es inim deinemWiki Blogpost beschreibst) ergänzen sich beide:

ein:

  1. ManGehe erstelltin einendein Buch ForkProgramming, um eine isolierte Spielwiese für ein gesamtes Projekt zu haben (z.B. für K.I.-Experimente).
  2. InnerhalbWähle diesesdie ForksSeite arbeitet"Git manGrundlagen: Fork vs. Branch" (oder bearbeite sie).
  3. Füge diesen Text ein.
  4. Bonus: Du kannst das Wort "Docker-Builds" im Text direkt mit Branches,deiner um verschiedene Funktionen (CSS, Features, Dokumentation) sauber voneinander zu trennen, bevor man sieSeite im ForkBuch zusammenführt."Container & Runtimes" verlinken.