Skip to main content

Git-Grundlagen: Fork vs. Branch

InUm derdie ProgrammierungVersionsverwaltung (egaleffizient obzu bei unseren Go-Projekten oder Web-Dashboards)nutzen, ist diees sauberewichtig, Trennungden vonUnterschied Code-Ständenzwischen überlebenswichtig.einem OftBranch werden(Zweig) dieund Begriffeeinem Fork und(Abspaltung) Branchzu synonymverstehen. verwendet,Beide dabeidienen erfüllender sieIsolation imvon WorkflowCode-Änderungen, völligsetzen unterschiedlicheaber Aufgaben.auf unterschiedlichen Ebenen an.

1. Der Branch (LokalerDer Abzweig)Zweig)

Ein Branch ist ein internerZeiger „Ast“auf einen bestimmten Entwicklungsstand innerhalb desselbeneines Repositorys.einzelnen Repositorys. Er ist die kleinste Einheit, um Änderungen getrennt vom Hauptcode (meist main oder master) zu entwickeln.

  • Einsatz:Ebene: WennRepository-intern.
  • du
  • Lebenszyklus: anEin einemBranch neuenist oft kurzlebig. Er wird für ein Feature arbeitest (z. B. eine neue Funktion in einem Go-Tool) oder einen BugBugfix fixst.
  • Workflow: Du erstellst einen Branch (z. B. feature/dashboard-ui), arbeitest darinerstellt und führstnach ihnAbschluss der Arbeit per Merge oder Rebase wieder in den Hauptstamm (main) zusammen.integriert.
  • Verbindung:Berechtigung: DaMan derbenötigt Schreibrechte für das Repository, um einen Branch imzu selbenpushen.
  • Praxis-Beispiel: Wenn ich in meinem Dashboard-Projekt lebt,eine istneue dieFunktion Integrationteste, schnellerstelle undich direkt.dafür einen Branch, um den stabilen Code nicht zu gefährden.

2. Der Fork (Die Projekt-Kopie)Abspaltung)

Ein Fork ist eine komplettevollständige Kopie eines Projektsgesamten aufRepositorys deinenunter eigeneneinem neuen Besitzer-Account. Technisch gesehen ist es ein neues, eigenständiges Repository, das jedoch die Verbindung zum Original (dem „Upstream“) beibehält.

  • Ebene: Account-Bereich / Server-Ebene.
  • Lebenszyklus: Ein Fork ist oft langlebiger. Er wird genutzt, um unabhängig am gesamten Projekt zu arbeiten, ohne das Original zu beeinflussen.
  • Berechtigung: Jeder kann einen Fork von einem öffentlichen Projekt erstellen, ohne Schreibrechte am Original zu besitzen.
  • Praxis-Beispiel: Bei komplexen Experimenten (z. B. aufwenn GitHub oder deinem eigenen Gitea).

    • Einsatz: Wenn du mit K.I.-Agenten experimentierst.großflächig DuCode forkstumbauen) deinnutze eigenesich Projekt,einen lässtFork. dieSo K.I.kann aufich dieserdas Kopiegesamte "wildgeworden"Projekt Featuresspiegeln einbauen,und experimentieren, ohne deinmein stabilesHaupt-Repo Original-Repositorymit unzähligen Test-Branches zu gefährden.
    • Workflow: Änderungen im Fork können später über einen Pull Request zurück ins Original fließen – oder der Fork wird zur neuen Basis für ein Experiment.
    • Vorteil: Maximale Sicherheit. Wenn die K.I. im Fork das CSS zerschießt, bleibt dein Hauptprojekt unberührt.fluten.

    3. DerDirekter Unterschied im "Programming"-AlltagVergleich

    Korrektur neuen,
    SituationMerkmal EmpfehlungBranchFork
    SchnelleSpeicherort Im anselben RepositoryIn einem Go-Skript Brancheigenen erstellenRepository
    Experimentelles Refactoring durch K.I.Abhängigkeit ForkFest erstellenmit dem Hauptprojekt verbundenEigenständig (mit Link zum Original)
    Zusammenarbeit mit Externen am Wiki-CodeZusammenführung Forkgit &merge oder git rebasePull Request (PR) an das Original
    SichtbarkeitFür alle Projektbeteiligten sichtbarIn meinem eigenen Account-Bereich

    4. QuerverweiseKombination &im AutomatisierungWorkflow

    In unseremder SetupPraxis nutzenwerden wirbeide Konzepte oft automatisierte Prozesse. Denkt daran:

    • Docker-Builds:kombiniert. Ein Pushtypischer inWorkflow sieht so aus:

      1. Man erstellt einen BranchFork kanneines einenProjekts, automatischenum Buildeine auslöseneigene (sieheArbeitsumgebung Buch:zu Container & Runtimes).haben.
      2. Innerhalb dieses Forks arbeitet man mit verschiedenen Dokumentation:Branches, Wennum Agenteneinzelne imFeatures Branchsauber arbeiten,zu sollten sie die Änderungen direkt in den Dokumentations-Ordner notieren, damit unser Wiki hier aktuell bleibt.trennen.
  • Ist
    ein

    SoFeature baustfertig, duwird es im Wiki ein:

    1. Gehe in dein Buch Programming.
    2. Wähle die Seite "Git Grundlagen: Fork vs.gemerged Branch"und (oderbei bearbeiteBedarf sie).
    3. per
    4. FügePull diesenRequest Textdem ein.
    5. Original-Projekt
    6. Bonus:zur DuVerfügung kannst das Wort "Docker-Builds" im Text direkt mit deiner Seite im Buch "Container & Runtimes" verlinken.gestellt.