Per-Arne's Git Good!
Git-lynkurs: fra zero til hero — Fra første commit til trygt teamarbeid — se det skje i ekte Git, prøv selv, forstå hvorfor.
6 moduler · 25 leksjoner · ~5.3 h
- 1 · Forstå — Kort, fortalt forklaring med animerte figurer av historikken.
- 2 · Se — En demo i ekte Git spilles av steg for steg. Forutsi før hver nøkkelkommando.
- 3 · Din tur — Gjør det samme selv. Kurset sjekker resultatet i Git, ikke ordlyden. Hint ved behov.
- 4 · Overfør — En ny variant uten demo, og spørsmål som henter fram kunnskapen igjen.
Læringsutbytte
Etter kurset kan du:
- Forklare hvorfor Git er distribuert, og Gits datamodell: en commit er et øyeblikksbilde med foreldre og en ID som avledes av innholdet, mens brancher, tags og HEAD er pekere til commits. forstå
- Bygge en ryddig historikk: styre hva som havner i hver commit gjennom arbeidsmappen og staging-området, gi hver commit én hensikt og en melding som sier hvorfor, og holde uønskede filer og uferdig arbeid utenfor. anvende
- Forgrene og flette: lage og bytte brancher, forutsi om en merge blir en fast-forward eller en merge-commit, og løse eller avbryte en konflikt. anvende
- Samarbeide gjennom et remote: skille din branch, remote-tracking-branchen og branchen i remoten, holde dem i takt med fetch, pull og push, og publisere en feature-branch for review. anvende
- Undersøke historikken: lese grafen, sammenligne revisjoner og spore en linje eller en feil til commiten som innførte den, med log, diff, blame og bisect. analysere
- Velge og begrunne en integrasjonsstrategi (fast-forward, merge-commit, rebase, squash eller cherry-pick) ut fra om historikken er delt, og rydde privat historikk med interaktiv rebase før den deles. vurdere
- Velge og begrunne angreverktøy ut fra hvor endringen ligger: restore for filer, reset for lokal historikk og revert for delt historikk. vurdere
- Gjenopprette etter feil uten å miste arbeid eller overskrive andres: avbryte en operasjon som pågår, finne commits som ser tapt ut med reflog og ORIG_HEAD, og løse en avvist push uten force. anvende
Modul 1: Grunnmuren
Hvorfor Git, snapshots, de tre områdene og en historikk du kan lese.
- Hvorfor Git? Git, GitHub og distribuert versjonskontroll · 10 min — forklare forskjellen på Git, programmet som lager og lagrer historikken, og vertstjenester som GitHub, GitLab og Bitbucket
- Hva er Git? Snapshots og din første commit · 10 min — forklare hva en commit er, og hvordan foreldrepekere binder commits sammen til historikk
- Tre områder: arbeidsmappen, staging-området og HEAD · 11 min — forklare hvor en filversjon ligger, i arbeidsmappen, i staging-området eller i HEAD, og forutsi hvilken versjon som havner i neste commit
- Gode commits: små, bevisste og godt beskrevne · 12 min — dele blandede endringer i commits med én hensikt hver, også inne i én fil med
git add -p - Les historikken: log, show og objektene bak · 11 min — bruke
git logmed--oneline,--statog-- <fil>for å finne commiten som endret en bestemt fil
Modul 2: Branches og merge
Pekere, parallelle utviklingslinjer og konflikter uten panikk.
- Brancher og HEAD: pekere, ikke kopier · 12 min — forklare at en branch er en flyttbar peker til én commit, ikke en kopi av filene
- Fast-forward: når merge bare flytter en peker · 10 min — forutsi ut fra grafen når en merge blir en fast-forward
- Treveis merge: når begge linjene har flyttet seg · 12 min — forklare hva en merge-base er, og finne den med
git merge-base - Konflikter uten panikk · 14 min — forklare hvorfor Git stopper med en konflikt når samme linjer er endret ulikt på begge sider
- Tagger: faste navn på viktige versjoner · 10 min — merke en utgivelse med
git tag -a v1.0 -mog se på den medgit show
Modul 3: Samarbeid
Remotes, fetch, pull og push — og hvordan et team jobber trygt sammen.
- Remotes og clone: tre ting som heter main · 10 min — forklare at en remote bare er et annet repository, og at
originbare er et lokalt navn på adressen - Fetch, pull og push: hold deg i takt med teamet · 12 min — forklare hvorfor din origin/main ikke flytter seg når en kollega pusher, før du kjører
git fetch - Teamarbeid: feature-brancher, pull requests og avtaler · 12 min — lage en feature-branch, publisere den med
git push -u, og forklare hvorfor det ikke endrer main
Modul 4: Angre og skrive om
Velg riktig angreverktøy, rydd privat historikk og redd arbeid som ser tapt ut.
- Angre i filene: git restore · 11 min — forkaste en ustaget endring med
git restore, og forklare hvorfor Git ikke kan gi tilbake en redigering den aldri lagret - Flytt branchen tilbake: git reset · 12 min — angre lokale commits ved å flytte branchen med
git reset, og velge modus (--soft,--mixed,--hard) ut fra hva som skal skje med staging og arbeidsfilene - Angre delt historikk: git revert · 11 min — angre en pushet commit med
git revertog dele rettelsen uten force-push - Rebase: spill arbeidet av på en ny base · 13 min — forklare hvorfor
git rebasegir nye commits med nye ID-er, og hva som skjer med originalene - Interaktiv rebase: rydd før du deler · 13 min — lese planen fra
git rebase -iog forklare hvorfor den eldste commiten står øverst - Reflog: redd arbeid som ser tapt ut · 13 min — forklare hva reflogen registrerer, og hvorfor commits som ser tapt ut, som regel fortsatt finnes
Modul 5: Verktøykassen
Stash, cherry-pick, feilsøking i historikken og en trygg arbeidsflyt.
- Stash: legg uferdig arbeid til side · 12 min — legge uferdige endringer til side med
git stash push -mog ta dem tilbake medgit stash pop - Cherry-pick: kopier én commit · 12 min — kopiere endringen fra én bestemt commit over på en annen branch med
git cherry-pick - Feiljakt: log -S, blame og bisect · 14 min — finne commiten som innførte en feil med
git bisectog en test, og avslutte søket medgit bisect reset - Worktrees og større prosjekter · 13 min — jobbe på to brancher samtidig med
git worktree add, og rydde opp etterpå medgit worktree removeellergit worktree prune - En trygg arbeidsflyt fra start til slutt · 15 min — gjennomføre en hel dag i et team: oppdatere
main, jobbe på en branch, lese diffen, committe og pushe
Modul 6: Sluttoppgave
Fra solo til team: vis at du mestrer hele arbeidsflyten i ekte Git, uten demo.
- Sluttoppgave: fra solo til team · 35 min — gjennomføre hele løypa fra feature-branch til publisert main i ekte Git, uten demo
Per-Arne's Git Good!