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.- Lebenszyklus:
anEineinemBranchneuenist oft kurzlebig. Er wird für ein Featurearbeitest (z. B. eine neue Funktion in einemGo-Tool)oder einenBugBugfixfixst. Workflow:Du erstellst einen Branch (z. B.feature/dashboard-ui), arbeitest darinerstellt undführstnachihnAbschluss der Arbeit per Merge oder Rebase wieder in den Hauptstamm(main) zusammen.integriert.Verbindung:Berechtigung:DaManderbenötigt Schreibrechte für das Repository, um einen Branchimzuselbenpushen.- Praxis-Beispiel: Wenn ich in meinem Dashboard-Projekt
lebt,eineistneuedieFunktionIntegrationteste,schnellerstelleundichdirekt.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.
aufwennGitHub oder deinem eigenen Gitea).Einsatz:Wenn du mitK.I.-Agentenexperimentierst.großflächigDuCodeforkstumbauen)deinnutzeeigenesichProjekt,einenlässtFork.dieSoK.I.kannaufichdieserdasKopiegesamte"wildgeworden"ProjektFeaturesspiegelneinbauen,und experimentieren, ohnedeinmeinstabilesHaupt-RepoOriginal-Repositorymit unzähligen Test-Branches zugefährden.Workflow:Änderungen im Fork können später über einenPull Requestzurü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.
DerDirekterUnterschied im "Programming"-AlltagVergleichSituationMerkmalEmpfehlungBranchFork SchnelleSpeicherortKorrekturIm anselben RepositoryIn einem neuen,Go-SkriptBrancheigenenerstellenRepositoryExperimentelles Refactoring durch K.I.AbhängigkeitForkFesterstellenmit dem Hauptprojekt verbundenEigenständig (mit Link zum Original) Zusammenarbeit mit Externen am Wiki-CodeZusammenführungForkgitoder&mergegit rebasePull Request (PR) an das Original Sichtbarkeit Für alle Projektbeteiligten sichtbar In meinem eigenen Account-Bereich 4.
QuerverweiseKombination&imAutomatisierungWorkflowIn
unseremderSetupPraxisnutzenwerdenwirbeide Konzepte oftautomatisierte Prozesse. Denkt daran:Docker-Builds:kombiniert. EinPushtypischerinWorkflow sieht so aus:- Man erstellt einen
BranchForkkanneineseinenProjekts,automatischenumBuildeineauslöseneigene(sieheArbeitsumgebungBuch:zuContainer & Runtimes).haben. - Innerhalb dieses Forks arbeitet man mit verschiedenen
Dokumentation:Branches,WennumAgenteneinzelneimFeaturesBranchsauberarbeiten,zusollten sie die Änderungen direkt in den Dokumentations-Ordner notieren, damit unser Wiki hier aktuell bleibt.trennen.
- Man erstellt einen
- Ist
einSoFeaturebaustfertig,duwird es imWiki ein:Gehe in dein BuchProgramming.Wähle die Seite"Git Grundlagen:Forkvs.gemergedBranch"und(oderbeibearbeiteBedarfsie).per FügePulldiesenRequestTextdemein.Original-Projekt Bonus:zurDuVerfügungkannst das Wort "Docker-Builds" im Text direkt mit deiner Seite im Buch "Container & Runtimes" verlinken.gestellt.