Git – cheat sheet

Versionsstyring: commits, branches, merge og GitHub · kommandolinjen

Git holder styr på ændringer i din kode. GitHub er en tjeneste hvor et Git-repository kan ligge online – Git er værktøjet, GitHub er stedet. Se også den uddybende side: Git CLI.

1. Start et projekt

# Nyt projekt: opret repository i mappen
git init

# Hent eksisterende projekt fra GitHub
git clone https://github.com/bruger/projekt.git

# Hvem er jeg? (én gang pr. computer)
git config --global user.name "Mit Navn"
git config --global user.email "mig@mail.dk"

git init laver en skjult .git-mappe, hvor hele historikken gemmes. clone henter en komplet kopi inklusive al historik.

2. Den daglige cyklus

git status              # hvad har jeg ændret?
git add fil.txt         # vælg fil til commit
git add .               # vælg ALLE ændringer
git commit -m "Besked"  # gem versionen lokalt
git push                # send til GitHub
git pull                # hent nye ændringer fra GitHub
Huskesætning: add → commit → push. add vælger, commit gemmer lokalt, push sender. status er din bedste ven – kør den ofte.

3. Se historik og forskelle

git log --oneline       # kompakt historik
git log --oneline -10   # kun de 10 seneste
git diff                # ændringer der ikke er staged
git diff --staged       # ændringer der ER staged
git show                # seneste commit i detaljer

4. Fortryd og ret fejl

# Kassér ændringer i en fil (før add)
git restore fil.txt

# Fjern fra staging (behold ændringerne)
git restore --staged fil.txt

# Ret seneste commit-besked
git commit --amend -m "Ny besked"

# Gå tilbage til en tidligere version
git checkout abc1234 -- fil.txt

--amend virker kun på det seneste commit og kun hvis du ikke har pushet endnu. Er det pushet, laver du et nyt commit der retter fejlen.

5. Branches: arbejd i isolation

git branch                  # se alle branches
git checkout -b feature     # opret og skift til branch
git checkout main           # skift tilbage

# Når feature er færdig:
git checkout main
git merge feature           # flyt ændringer ind i main
git branch -d feature       # slet den gamle branch

En branch er en parallel version af koden. Arbejd på en feature-branch, og merge ind i main når det virker. main skal altid være stabil.

6. Merge-konflikt: hvad gør jeg?

# Git siger "CONFLICT" ved merge/pull.
# Åbn filen – den ser sådan ud:

<<<<<<< HEAD
min version
=======
deres version
>>>>>>> feature

# 1. Ret filen: behold det rigtige,
#    fjern markørerne
# 2. Fortsæt:
git add fil.txt
git commit

Konflikt = Git kan ikke selv vælge. Åbn filen, find <<<<<<<-markørerne, vælg hvad der skal blive, fjern markørerne, add og commit.

7. GitHub: del med andre

# Forbind lokalt repo med GitHub
git remote add origin \\
  https://github.com/bruger/projekt.git

# Første push (sætter op -u)
git push -u origin main

# Derefter bare:
git push
git pull

# Se hvor der pushes hen
git remote -v

8. .gitignore: hvad Git skal ignorere

# Opret filen .gitignore i roden:
bin/
obj/
*.user
.vs/
node_modules/
__pycache__/
*.log
.env

Genererede filer (build-output, pakker, logs, hemmeligheder) hører ikke i Git. For .NET-projekter: dotnet new gitignore laver en passende fil.

9. Hurtig oversigt

git statushvad er ændret? git add .vælg alle ændringer git commit -m "..."gem version lokalt git push / git pullsend / hent fra GitHub git log --onelinese historik git checkout -b navnny branch + skift git merge branchmerge ind i nuværende git restore filkassér ændringer i fil git diffse ændringer

10. Typiske faldgruber