Sådan fungerer Git · Mindmaps
Sådan fungerer Git. Et redigerbart mindmap med farvede grene, underemner og forbindelser. Buede linjer viser sammenhænge; pile bruges, når retningen har betydning.
Git er et snapshot-baseret versionsstyringssystem: hvert commit er et komplet billede af repositoryet, kædet til sin forælder, og branches er blot pointere, der flytter sig langs historikken.
Sådan fungerer Git · Mindmaps
The interactive MindMap canvas for this explanation — every lane, row and arrow above is a real QueryChart diagram you can open and edit.
Sådan læser du mindmappet
- Begynd ved emnet i midten, og følg en farvet gren til de tilhørende idéer.
- Buede linjer viser sammenhænge; pile bruges, når retningen har betydning.
Working tree
Denne gren samler “Developer edits files in the working directory”.
Stage
Denne gren samler “git add moves changes into the staging area”.
Commit history
Denne gren samler “A commit is a snapshot of the whole repository plus metadata — author, message, timestamp. Git only stores the delta against the parent, so history stays small.”, “Git stores the commit with a pointer to its parent”, “The branch pointer moves to the new commit”.
Share
Denne gren samler “The commit graph is what makes Git a distributed tool: everyone has the full history locally, and ‘push’ and ‘pull’ only exchange the missing pieces.”, “Remote repository records the new history”, “History is shared and up to date”.
Resolve conflicts
Denne gren samler “Git merges divergent histories automatically when the changes touch different files or lines. Only overlapping edits produce a conflict.”, “Merge conflict — developer resolves it manually”.
Forbindelser på tværs
Et commit er et fuldt snapshot kædet til sin forælder, og det er dét, der gør historikken til en append-only graf.
En branch er en pointer til et commit, ikke en beholder med ændringer, og derfor er det billigt at oprette og skifte branch.
Staging er det bevidste mellemtrin, der lader dig vælge, hvad et commit indeholder.
Git er distribueret: alle har den fulde historik lokalt, og push/pull udveksler kun de manglende stykker.
Konflikter er undtagelsen og ikke reglen, og sker de, er det et menneske, der løser dem eksplicit.
Key relationships and takeaways
- Et commit er et fuldt snapshot kædet til sin forælder, og det er dét, der gør historikken til en append-only graf.
- En branch er en pointer til et commit, ikke en beholder med ændringer, og derfor er det billigt at oprette og skifte branch.
- Staging er det bevidste mellemtrin, der lader dig vælge, hvad et commit indeholder.
- Git er distribueret: alle har den fulde historik lokalt, og push/pull udveksler kun de manglende stykker.
- Konflikter er undtagelsen og ikke reglen, og sker de, er det et menneske, der løser dem eksplicit.
When to use this visual
- At lære snapshot-modellen fra sig til et team, der kun har brugt Git som en række kommandoer.
- At forklare branches, merges og konflikter ud fra pointer-modellen frem for udenadlærte kommandoer.
- At forankre en gennemgang af et teams commit- og branchingworkflow i, hvordan historikken faktisk er opbygget.
Sådan fungerer det
Tilpas emnet i midten
Giv emnet et navn, der passer til dit projekt eller din undervisning.
Udbyg grenene
Rediger idéerne, og tilføj eksempler eller noter.
Forbind beslægtede idéer
Tegn forbindelser på tværs af grene; brug kun pile, når retningen betyder noget.
Ofte stillede spørgsmål
Hvad er Git, og hvordan adskiller det sig fra anden versionsstyring?
Git er et distribueret versionsstyringssystem bygget på snapshots. Hvert commit gemmer et komplet billede af repositoryet plus en pointer til sin forælder frem for blot en liste over filændringer. Fordi hver udvikler har den fulde historik lokalt, virker de fleste operationer offline, og samarbejde er et spørgsmål om at udveksle commits med remotes.
Hvad er en branch i Git?
En branch er en flytbar pointer til et commit. Når du committer på en branch, rykker pointeren frem til det nye commit; selve committet ved ikke og er ligeglad med, hvilken branch det ligger på. Derfor er det øjeblikkeligt at oprette en branch, og derfor ændrer et skift mellem branches kun, hvilket snapshot din arbejdsmappe viser.
Hvorfor har Git et staging-område?
Staging-området lader dig bygge et commit bevidst. Du kan rette i flere filer, stage kun dem, der hører sammen, og committe netop det udvalg, og lade urelateret arbejde blive liggende ucommittet. Arbejdsmappen, staging-området og repositoryet er tre adskilte tilstande, og det er præcis den pipeline, diagrammet tegner.
Hvordan løser Git mergekonflikter?
Når to branches ændrer forskellige filer eller forskellige linjer, merger Git dem automatisk. Ændrer de de samme linjer, kan Git ikke gætte, hvilken version der er den rigtige, så den markerer konflikten og beder et menneske om at vælge. Konflikten er en beslutning og ikke en fejl, og derfor sender diagrammet den videre til et eksplicit løsningstrin, før historikken bliver delt.
Rediger dette mindmap i QueryChart
Åbn mindmappet på et redigerbart lærred. Flyt idéer, tilføj grene, og tegn forbindelser.