Git - Versionshantering

  • Distribuerat versionhanteringssystem
  • Utvecklat av Linus Torvalds 2005
  • Spårar ändringar i kod över tid
  • Möjliggör samarbete

Repository (Repo)

  • En container för ditt projekt
  • Innehåller:
    • Alla projektfiler
    • Hela historiken
    • Alla branches
    • All konfiguration
git init          # Skapa nytt repo
git clone URL     # Kopiera existerande repo

Working Directory

  • Filerna du arbetar med
  • Din “arbetsbänk”
  • Filer kan vara:
    • Trackade (Git känner till dem)
    • Otrackade (Nya filer)
    • Ignorerade (.gitignore)

Staging Area (Index)

  • Mellanlagring innan commit
  • Förbereder nästa commit
  • Ger kontroll över vad som committas
git add fil.txt     # Lägg till specifik fil
git add .           # Lägg till alla ändringar
git reset fil.txt   # Ta bort från staging

Commits

  • En “snapshot” av projektet
  • Permanent del av historiken
  • Innehåller:
    • Ändringar i filer
    • Författare och tidsstämpel
    • Meddelande som beskriver ändringen
    • Referens till föregående commit

Bra commit-meddelanden

  • Kort sammanfattning (max 50 tecken)
  • Förklara VAD och VARFÖR (inte HUR)
  • Exempel:
    "Add login functionality to user system"
    "Fix memory leak in image processing"
    

Branches

  • Parallella utvecklingsspår
  • Isolerar ändringar
  • Möjliggör:
    • Nya features
    • Buggfixar
    • Experiment

Branch Workflow

git branch feature      # Skapa branch
git checkout feature    # Byt till branch
# eller
git checkout -b feature # Skapa och byt

git branch             # Lista branches

Remote Repository

  • En kopia av repot på en server
  • Möjliggör:
    • Backup
    • Samarbete
    • Koddelning
  • Exempel: GitHub, GitLab, Bitbucket

Remote Commands

git remote add origin URL    # Lägg till remote
git push origin branch      # Skicka ändringar
git pull origin branch      # Hämta ändringar
git fetch origin           # Hämta utan merge

Git Workflow

  1. Working Directory

    • Ändra filer
    • Skapa nya filer
  2. Staging Area

    • git add - Välj ändringar
  3. Repository

    • git commit - Spara ändringar

Visualisering av Git

Working Dir    Staging     Repository
    ↓            ↓            ↓
[fil.txt] → git add → [INDEX] → git commit

.gitignore

  • Talar om för Git vad som ska ignoreras
  • Vanliga exempel:
    node_modules/
    *.log
    .env
    .DS_Store
    

Git Status

git status              # Full status
git status -s          # Kort status

# Exempel output:
# M  modified.txt      # Staged
# A  new-file.txt      # Staged new file
# ?? untracked.txt     # Untracked

Frågor?