🔄 Git & GitHub - Synkroniseringsguide

Denna guide beskriver hur du synkroniserar ett lokalt Git-repository med ett remote repository pÄ GitHub.

1. Klona ett remote repository

För att hÀmta ett befintligt repo frÄn GitHub till din lokala dator:

# Navigera till önskad mapp först
cd "D:\Din\Önskade\Mapp"

# Klona repot (skapar en undermapp med reponamnet)
git clone https://github.com/anvÀndarnamn/repo-namn.git

Undvik att skapa extra mapp vid kloning

NÀr du kör git clone [url] skapas automatiskt en ny mapp med reponamnet. För att klona direkt till nuvarande mapp utan att skapa en undermapp:

# LÀgg till en punkt (.) i slutet för att klona till NUVARANDE mapp
git clone https://github.com/anvÀndarnamn/repo-namn.git .

OBS! Mappen mÄste vara tom för att detta ska fungera!

Om mappen innehÄller filer fÄr du felmeddelandet: fatal: destination path '.' already exists and is not an empty directory.

Alternativ: Klona till befintlig mapp med filer

Om du redan har filer i mappen kan du istÀllet initiera git och koppla till remote:

# 1. Initiera git i nuvarande mapp
git init

# 2. LĂ€gg till remote repository
git remote add origin https://github.com/anvÀndarnamn/repo-namn.git

# 3. HÀmta innehÄllet frÄn remote
git fetch origin

# 4. Koppla din lokala main-branch till remote
git checkout -b main origin/main

# OBS: Lokala filer som inte finns i repot behÄlls men Àr "untracked"

1b. Kontrollera vilket GitHub-konto du Àr autentiserad mot

Om du har flera GitHub-konton Àr det viktigt att veta vilket konto Git anvÀnder:

Visa konfigurerad anvÀndare

# Visa ALLA instÀllningar (bÄde global och lokal) med kÀlla
git config --list --show-origin

# Eller filtrera pÄ user-instÀllningar:
git config --list --show-origin | findstr user

Kommandot visar varifrÄn varje instÀllning kommer:

# Exempel pÄ output:
file:C:/Users/Kent/.gitconfig user.name=kentlundgren
file:C:/Users/Kent/.gitconfig user.email=kent@example.com
file:.git/config user.name=lundgren9 ← lokal override

Förenklat:

# Visa endast globalt
git config --global user.name
git config --global user.email

# Visa endast lokalt (för aktuellt repo)
git config user.name
git config user.email

Visa lagrade credentials (inloggningsuppgifter)

# Windows: Öppna Credential Manager
# Sök efter "Credential Manager" i Start-menyn
# GĂ„ till "Windows Credentials" → leta efter "git:https://github.com"

# Eller via kommandorad (visar vilka credentials som finns):
cmdkey /list | findstr github

Testa autentisering mot GitHub

# Detta visar vilket konto du Àr autentiserad som
ssh -T git@github.com

# För HTTPS: försök pusha/pulla - dÄ ser du vilket konto som anvÀnds
# eller kör:
gh auth status
# (krÀver GitHub CLI installerat)

1e. SSH och GitHub - Detaljerad förklaring

Det finns tvÄ sÀtt att ansluta till GitHub:

Metod URL-format Autentisering
HTTPS https://github.com/user/repo.git AnvÀndarnamn + lösenord/token (sparas i Credential Manager)
SSH git@github.com:user/repo.git SSH-nycklar (ett nyckelpar pÄ din dator)

Vad gör kommandot ssh -T git@github.com?

LÄt oss bryta ner kommandot:

Del Betydelse
ssh Secure Shell - ett protokoll för sÀker, krypterad kommunikation
-T "Disable pseudo-terminal" - vi vill bara testa anslutningen, inte öppna en terminal
git AnvÀndarnamnet vi ansluter som (alla GitHub-anvÀndare ansluter som "git")
@github.com Servern vi ansluter till

Sammanfattning: Kommandot testar om din dator kan ansluta till GitHub via SSH och visar vilket konto du Àr autentiserad som.

NÀr ska man anvÀnda detta kommando?

⚠ "The authenticity of host can't be established" - Vad betyder det?

Första gÄngen du kör kommandot fÄr du detta meddelande:

The authenticity of host 'github.com (4.225.11.194)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Varför fÄr du denna frÄga?

SSH har en sÀkerhetsfunktion för att skydda dig mot "man-in-the-middle"-attacker:

  1. Din dator har aldrig pratat med github.com via SSH förut
  2. SSH vet inte om servern Àr Àkta (nÄgon kan försöka utge sig för att vara GitHub)
  3. SSH visar serverns "fingeravtryck" - en unik identifierare
  4. Du uppmanas verifiera att fingeravtrycket matchar GitHub:s officiella
🔐 Analogin: Som att verifiera ett ID-kort

TÀnk dig att nÄgon ringer och sÀger "Hej, jag Àr frÄn GitHub". Du frÄgar: "Bevisa det!" De visar ett ID-kort med ett unikt nummer. Du jÀmför numret med GitHub:s officiella ID-nummer. Om det stÀmmer - du litar pÄ dem!

Varför ska du svara "yes"?

Om fingeravtrycket matchar GitHub:s officiella (se tabellen nedan) Àr det sÀkert att svara yes eftersom:

  1. ✅ Du har verifierat att det verkligen Ă€r GitHub du pratar med
  2. ✅ SSH sparar fingeravtrycket i filen ~/.ssh/known_hosts
  3. ✅ NĂ€sta gĂ„ng du ansluter slipper du frĂ„gan - SSH kĂ€nner igen servern
  4. ✅ Om nĂ„gon försöker utge sig för GitHub i framtiden fĂ„r du en VARNING

🎉 Ingen panik! Detta Ă€r helt normalt första gĂ„ngen.

Det Àr faktiskt ett tecken pÄ att SSH fungerar och skyddar dig!

Vad hÀnder efter att du svarat "yes"?

# Om SSH-nycklar Àr konfigurerade:
Hi kentlundgren! You've successfully authenticated, but GitHub does not provide shell access.

# Detta betyder:
# ✅ SSH-anslutningen fungerar
# ✅ Du Ă€r autentiserad som "kentlundgren"
# ✅ "no shell access" Ă€r normalt - GitHub tillĂ„ter bara git-kommandon, inte inloggning
# Om SSH-nycklar INTE Àr konfigurerade:
git@github.com: Permission denied (publickey).

# Detta betyder:
# ❌ Du har inga SSH-nycklar uppsatta
# ❌ Du kan inte anvĂ€nda SSH-metoden Ă€nnu
# → AnvĂ€nd HTTPS istĂ€llet, eller sĂ€tt upp SSH-nycklar

Hur hÀnger SSH ihop med Git och GitHub?

Översikt: TvĂ„ vĂ€gar till samma mĂ„l

┌─────────────────┐                              ┌─────────────────┐
│   DIN DATOR     │                              │     GITHUB      │
│   (Lokalt Git)  │                              │    (Remote)     │
├──────────────────                              ├──────────────────
│                 │      ┌──────────────┐        │                 │
│  git push  ─────┌─────â–ș│    HTTPS     │───────â–ș│  lundgren9/     │
│  git pull  ◄────┌──────│  (port 443)  │◄───────│  Simrishamn     │
│                 │      │              │        │                 │
│                 │      │ Credential   │        │                 │
│                 │      │ Manager      │        │                 │
│                 │      └──────────────┘        │                 │
│                 │                              │                 │
│                 │      ┌──────────────┐        │                 │
│  git push  ─────┌─────â–ș│     SSH      │───────â–ș│                 │
│  git pull  ◄────┌──────│  (port 22)   │◄───────│                 │
│                 │      │              │        │                 │
│                 │      │ SSH-nycklar  │        │                 │
│                 │      │ known_hosts  │        │                 │
│                 │      └──────────────┘        │                 │
└─────────────────┘                              └─────────────────┘
            

Sammanfattning:

1f. Byta frÄn HTTPS till SSH - Komplett guide

NÀr du klonar ett repo pÄ GitHub kan du vÀlja mellan HTTPS och SSH:

GitHub visar val mellan HTTPS och SSH vid kloning

GitHub visar tvÄ alternativ: HTTPS eller SSH

Varför byta till SSH? Fördelarna

Aspekt HTTPS SSH
Autentisering AnvÀndarnamn + token/lösenord SSH-nyckelpar (automatiskt)
BekvĂ€mlighet Kan krĂ€va inloggning ibland ✅ Aldrig lösenord efter setup
SĂ€kerhet Token kan lĂ€cka om sparat i fel fil ✅ Privat nyckel lĂ€mnar aldrig din dator
Flera konton SvĂ„rt - Credential Manager sparar ett ✅ Enkelt med olika nycklar per konto
BrandvĂ€ggar ✅ Port 443 (nĂ€stan alltid öppen) Port 22 (kan vara blockerad)
Setup-tid ✅ Snabbt - fungerar direkt KrĂ€ver initial setup (ca 10 min)

Rekommendation: Om du arbetar med GitHub regelbundet och/eller har flera konton Àr SSH vÀrt den initiala setup-tiden!

Steg-för-steg: SÀtta upp SSH för GitHub

Steg 1: Kontrollera om du redan har SSH-nycklar

# Kolla om det finns befintliga nycklar
ls ~/.ssh

Tre möjliga resultat:

Resultat Vad det betyder Vad du ska göra
Du ser filer som id_ed25519, id_rsa ✅ Du har redan SSH-nycklar Hoppa till Steg 4
Mappen finns men Àr tom Mappen existerar men inga nycklar FortsÀtt till Steg 2
Felmeddelande: "Cannot find path" 🆕 Normalt! Mappen finns inte Ă€nnu FortsĂ€tt till Steg 2
# Om du fÄr detta felmeddelande:
ls : Cannot find path 'C:\Users\kentl\.ssh' because it does not exist.

# ✅ Det Ă€r HELT NORMALT!
# Det betyder bara att du aldrig anvÀnt SSH förut.
# Mappen skapas automatiskt i nÀsta steg.

🎉 Ingen panik! Om du fick felmeddelandet ovan Ă€r det precis vad som förvĂ€ntas första gĂ„ngen. FortsĂ€tt till Steg 2!

Steg 2: Skapa ett nytt SSH-nyckelpar

# Skapa en ny SSH-nyckel (ersÀtt e-postadressen med din)
ssh-keygen -t ed25519 -C "din-email@example.com"

# Du kommer fÄ frÄgor:
# "Enter file in which to save the key" → Tryck Enter (anvĂ€nd default)
# "Enter passphrase" → Valfritt lösenord (eller Enter för inget)
# "Enter same passphrase again" → Upprepa

Vad skapas? TvÄ filer i ~/.ssh/:

Steg 3: Starta SSH-agenten

# I PowerShell, starta SSH-agenten
Start-Service ssh-agent

# Om du fÄr fel, prova detta först (som Admin):
Set-Service -Name ssh-agent -StartupType Automatic
Start-Service ssh-agent

# LĂ€gg till din nyckel i agenten
ssh-add ~/.ssh/id_ed25519

Steg 4: Kopiera din publika nyckel

# Visa din publika nyckel
Get-Content ~/.ssh/id_ed25519.pub

# Eller kopiera direkt till urklipp
Get-Content ~/.ssh/id_ed25519.pub | Set-Clipboard

# Nyckeln ser ut ungefÀr sÄ hÀr:
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... din-email@example.com

Steg 5: LÀgg till nyckeln pÄ GitHub

GĂ„ till: https://github.com/settings/ssh/new

GitHub - LĂ€gg till ny SSH-nyckel

GitHub:s sida för att lÀgga till SSH-nycklar

  1. Logga in pÄ GitHub (t.ex. som kentlundgren)
  2. GĂ„ till Settings → SSH and GPG keys → New SSH key
  3. Title: Ge nyckeln ett namn, t.ex. "Min Windows-dator"
  4. Key type: LÄt stÄ pÄ "Authentication Key"
  5. Key: Klistra in din publika nyckel (frÄn steg 4)
  6. Klicka Add SSH key

För flera konton (t.ex. kentlundgren OCH lundgren9):

Upprepa steg 5 för varje konto! Du kan anvÀnda samma publika nyckel pÄ bÄda kontona, eller skapa separata nycklar.

Steg 6: Testa anslutningen

# Testa SSH-anslutning till GitHub
ssh -T git@github.com

# Första gÄngen: Svara "yes" pÄ fingerprint-frÄgan
# FörvÀntat resultat:
Hi kentlundgren! You've successfully authenticated, but GitHub does not provide shell access.

Steg 7: Byt befintligt repo frÄn HTTPS till SSH

Om du redan har klonat ett repo med HTTPS kan du byta till SSH:

# Kolla nuvarande remote
git remote -v

# Om det stÄr https://github.com/..., byt till SSH:
git remote set-url origin git@github.com:lundgren9/Simrishamn.git

# Verifiera Àndringen
git remote -v

# Nu ska det stÄ:
# origin git@github.com:lundgren9/Simrishamn.git (fetch)
# origin git@github.com:lundgren9/Simrishamn.git (push)

Hantera flera GitHub-konton med SSH

Om du har flera konton (t.ex. kentlundgren och lundgren9) och vill anvÀnda olika nycklar:

Alternativ A: Samma nyckel pÄ bÄda kontona (enklast)

LÀgg till samma publika nyckel pÄ bÄda GitHub-kontona. Fungerar utmÀrkt!

Alternativ B: Separata nycklar (mer kontroll)

# Skapa en andra nyckel för lundgren9
ssh-keygen -t ed25519 -C "lundgren9@example.com" -f ~/.ssh/id_ed25519_lundgren9

# Skapa/redigera SSH config-fil
notepad ~/.ssh/config

LĂ€gg till i ~/.ssh/config:

# Konto: kentlundgren (default)
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519

# Konto: lundgren9
Host github-lundgren9
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_lundgren9

Sedan anvÀnder du olika "hosts" för olika konton:

# För kentlundgren-repos:
git clone git@github.com:kentlundgren/repo.git

# För lundgren9-repos:
git clone git@github-lundgren9:lundgren9/Simrishamn.git

Sammanfattning: SSH Setup Checklista

✅ Checklista för SSH-setup
  1. ☐ Skapa SSH-nyckel: ssh-keygen -t ed25519 -C "email"
  2. ☐ Starta SSH-agent: Start-Service ssh-agent
  3. ☐ LÀgg till nyckel: ssh-add ~/.ssh/id_ed25519
  4. ☐ Kopiera publik nyckel: Get-Content ~/.ssh/id_ed25519.pub
  5. ☐ LÀgg till pÄ GitHub: github.com/settings/ssh/new
  6. ☐ Testa: ssh -T git@github.com
  7. ☐ Byt repo till SSH: git remote set-url origin git@github.com:user/repo.git

1g. Cursor och SSH - Viktigt att förstÄ!

⚠ Begreppsförvirring! Det finns tvĂ„ helt olika saker som bĂ„da kallas "SSH":

  1. SSH för GitHub – Autentiseringsmetod för git push/pull
  2. "Connect via SSH" i Cursor – Anslut till en fjĂ€rrdator för att redigera kod dĂ€r

Dessa Àr INTE samma sak!

Vad Àr "Connect via SSH" i Cursor?

NÀr du öppnar Cursor ser du tre alternativ pÄ startsidan:

Cursor startsida med Connect via SSH

Cursors startsida: "Open project", "Clone repo", och "Connect via SSH"

Knapp Vad den gör
Open project Öppna en mapp pĂ„ din lokala dator
Clone repo Klona ett Git-repo (frÄn GitHub etc.)
Connect via SSH Anslut till en annan dator (t.ex. en Linux-server) och redigera filer dÀr

Marketplace-tillÀgg för fjÀrranslutning

Om du klickar pÄ "Connect via SSH" visar Cursor dessa tillÀgg:

Cursor Marketplace SSH-tillÀgg

Marketplace: TillÀgg för fjÀrranslutning

Förklaring av tillÀggen

TillÀgg Vad det gör Behövs för GitHub SSH?
Remote - SSH
(6.2M nedladdningar)
Redigera filer pĂ„ en fjĂ€rrdator (t.ex. en Linux-server pĂ„ jobbet eller i molnet) direkt i Cursor via SSH ❌ NEJ
Dev Containers
(4.3M nedladdningar)
Utveckla inuti Docker-containers – skapar isolerade utvecklingsmiljöer ❌ NEJ
WSL
(2.5M nedladdningar)
Öppna mappar i Windows Subsystem for Linux – en Linux-miljö pĂ„ din Windows-dator ⚠ Endast om du anvĂ€nder WSL

Behöver du dessa tillÀgg?

Enkel guide: Vad behöver DU?

Om du vill... Behöver du tillÀggen?
AnvĂ€nda SSH-nycklar för git push till GitHub ❌ NEJ! Det hanteras av Git, inte Cursor
Redigera kod pĂ„ din lokala Windows-dator ❌ NEJ! AnvĂ€nd "Open project"
Redigera kod pĂ„ en fjĂ€rrserver (Linux-server) ✅ JA – Installera "Remote - SSH"
Utveckla i Docker-containers ✅ JA – Installera "Dev Containers"
Arbeta med filer i WSL (Linux pĂ„ Windows) ✅ JA – Installera "WSL"

🎯 Sammanfattning för de flesta anvĂ€ndare:

Om du bara vill:

→ Du behöver INTE installera nĂ„got av dessa tillĂ€gg!

SSH-nycklar för GitHub hanteras av Git (kommandoraden), inte av Cursor. Följ instruktionerna i sektion 1f ovan istÀllet.

NĂ€r ÄR tillĂ€ggen anvĂ€ndbara?

đŸ–„ïž Remote - SSH: AnvĂ€ndningsfall
🐳 Dev Containers: AnvĂ€ndningsfall
🐧 WSL: AnvĂ€ndningsfall

GitHub:s officiella SSH-fingerprints

Dessa Àr de korrekta fingeravtrycken frÄn GitHub (januari 2026):

Algoritm Fingerprint
ED25519 SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU
RSA SHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s
ECDSA SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM

SĂ€kerhetstips: Om fingeravtrycket INTE matchar nĂ„gon av ovan – svara no! Det kan betyda att nĂ„gon försöker avlyssna din anslutning (man-in-the-middle attack).

KĂ€lla: GitHub:s officiella dokumentation

Efter att du svarat "yes":

# FörvÀntat svar om allt fungerar:
Hi lundgren9! You've successfully authenticated, but GitHub does not provide shell access.

Detta bekrÀftar att du Àr autentiserad som anvÀndaren lundgren9.

Tips: Om du har flera konton kan du sÀtta olika anvÀndare per repo:

# SÀtt anvÀndare för endast detta repo (utan --global)
git config user.name "lundgren9"
git config user.email "din-email@example.com"

1c. Arbeta med flera GitHub-konton

Om du har flera GitHub-konton (t.ex. kentlundgren och lundgren9) behöver du förstÄ skillnaden mellan lokal identitet och remote-Ätkomst.

TvÄ olika saker att hÄlla koll pÄ

Begrepp Vad det Àr Var det konfigureras
Lokal identitet Namn och e-post som syns i dina commits git config user.name och user.email
Remote-Ätkomst Vilket konto du loggar in med för att pusha/pulla Windows Credential Manager eller SSH-nycklar

Viktigt att förstÄ: Din lokala identitet (user.name) pÄverkar inte vilken rÀtt du har att pusha till ett repo. Det avgörs av din autentisering (credentials).

Scenario: Pusha till ett repo som Àgs av ett annat konto

Exempel: Du Àr inloggad lokalt som kentlundgren men vill pusha till lundgren9/Simrishamn.

Lösning: Bjud in dig sjÀlv som contributor!

  1. Logga in pÄ GitHub som lundgren9 (repo-Àgaren)
  2. GĂ„ till Settings → Collaborators
  3. Klicka Add people och sök efter kentlundgren
  4. Skicka inbjudan
  5. Logga in som kentlundgren och acceptera inbjudan

Nu kan kentlundgren pusha till repot!

Kolla vilken identitet du anvÀnder lokalt

# Enklaste sÀttet - visa namn och e-post
git config user.name
git config user.email

# Om inget visas: ingen lokal config finns, kolla global
git config --global user.name
git config --global user.email

Byta identitet för ett specifikt repo

Om du vill att commits i detta repo ska visas med ett annat namn:

# StÀll in lokal identitet (gÀller ENDAST detta repo)
git config user.name "lundgren9"
git config user.email "lundgren9@example.com"

# Verifiera
git config user.name

OBS: Detta Àndrar bara namnet som visas i commits - det Àndrar inte vilket konto du Àr autentiserad mot GitHub med!

1d. "Du har inte tillstÄnd" - Vanligt problem

Om du försöker pusha och fÄr ett felmeddelande som detta:

Felmeddelande: Du har inte tillstÄnd

Exempel pÄ felmeddelande nÀr man saknar push-rÀttigheter

Varför hÀnder detta?

Detta felmeddelande betyder att kontot du Àr autentiserad med inte har rÀttighet att pusha till repot. Det kan bero pÄ:

Orsak Förklaring
Fel konto i Credential Manager Windows har sparat inloggningsuppgifter för ett annat GitHub-konto Àn det som Àger repot
Inte inbjuden som collaborator Du försöker pusha till nÄgon annans repo utan att ha blivit inbjuden
Inbjudan inte accepterad Du har fÄtt en inbjudan men inte accepterat den Ànnu

Viktigt att förstĂ„: Det spelar ingen roll vad du har i git config user.name – det som avgör din push-rĂ€ttighet Ă€r vilket konto som Ă€r autentiserat mot GitHub (sparade credentials).

Lösning 1: Bjud in rÀtt konto som collaborator

Om du har flera GitHub-konton och vill att ditt "andra" konto ska kunna pusha:

  1. Logga in pÄ GitHub.com med kontot som Àger repot
  2. GĂ„ till repot → Settings → Collaborators
  3. Klicka Add people
  4. Sök efter och bjud in ditt andra konto
  5. Logga in pÄ GitHub med det inbjudna kontot
  6. Acceptera inbjudan (finns under Notifications eller via e-post)

✅ Rekommenderas! Detta Ă€r den enklaste lösningen om du har flera konton.

Lösning 2: Byt sparade credentials i Windows

Om du vill byta vilket konto som anvÀnds för autentisering:

# Steg 1: Öppna Credential Manager
# Sök efter "Credential Manager" eller "Hanteraren för autentiseringsuppgifter" i Start-menyn

# Steg 2: Klicka pÄ "Windows Credentials" / "Windows-autentiseringsuppgifter"

# Steg 3: Hitta "git:https://github.com"

# Steg 4: Klicka pÄ den och vÀlj "Remove" / "Ta bort"

# Steg 5: NÀsta gÄng du pushar kommer Git frÄga efter inloggning igen

Du kan ocksÄ köra detta i PowerShell:

# Visa alla sparade GitHub-credentials
cmdkey /list | findstr github

# Ta bort sparad credential (krÀver exakt namn frÄn listan ovan)
cmdkey /delete:git:https://github.com

Lösning 3: AnvÀnd SSH istÀllet för HTTPS

Med SSH kan du ha olika nycklar för olika konton:

# Kontrollera vilken remote du anvÀnder
git remote -v

# Om den börjar med https://, byt till SSH:
git remote set-url origin git@github.com:lundgren9/Simrishamn.git

# Verifiera Àndringen
git remote -v

Sammanfattning: Vad göra nÀr du fÄr "Du har inte tillstÄnd"

🔧 Steg-för-steg felsökning
  1. Kolla vilken remote du anvÀnder: git remote -v
  2. Kontrollera att du Àr inbjuden till repot (om du inte Àger det)
  3. Ta bort gamla credentials i Credential Manager
  4. Försök pusha igen – Git kommer frĂ„ga efter ny inloggning
  5. Logga in med rÀtt konto

FörstÄ git config --list --show-origin

NÀr du kör git config --list --show-origin fÄr du ALLA instÀllningar frÄn alla kÀllor:

KÀlla (fil) Vad det Àr
C:/Program Files/Git/etc/gitconfig System - Git-installationens standardinstÀllningar
C:/Users/Kent/.gitconfig Global - Din personliga config (--global)
.git/config Lokal - Endast för detta repo

Outputen kan vara lÄng! Tips:

2. Vanligt arbetsflöde (dagligt arbete)

đŸ“„ HĂ€mta senaste Ă€ndringarna frĂ„n GitHub
git pull origin main
âŹ‡ïž
✏ Gör dina Ă€ndringar i filerna

Redigera, skapa eller ta bort filer som vanligt

âŹ‡ïž
📋 Kontrollera status
git status
âŹ‡ïž
➕ LĂ€gg till Ă€ndringar för commit
# LÀgg till alla Àndringar
git add .

# ELLER lÀgg till specifik fil
git add filnamn.txt
âŹ‡ïž
đŸ’Ÿ Skapa en commit (spara lokalt)
git commit -m "Beskrivning av Àndringarna"
âŹ‡ïž
đŸ“€ Skicka till GitHub
git push origin main

3. Viktiga kommandon - Sammanfattning

Kommando Beskrivning
git clone [url] Klona ett remote repo till lokalt
git pull HÀmta och slÄ ihop Àndringar frÄn remote
git fetch HÀmta Àndringar utan att slÄ ihop
git status Visa status för arbetskatalogen
git add . Stagea alla Àndringar
git commit -m "msg" Skapa commit med meddelande
git push Skicka commits till remote
git log --oneline Visa commit-historik
git remote -v Visa kopplade remote repositories

4. Vanliga problem och lösningar

⚠ Git inne i Git - "Nested repositories"

Ett vanligt misstag Àr att klona ett repo inne i ett annat repo. Detta skapar problem!

Vad hÀnder?

Om du stÄr i ett Git-repo och kör git clone skapas en ny mapp med sin egen .git-mapp:

# Du stÄr i Simrishamn (ett Git-repo)
git clone https://github.com/user/annat-repo.git

# Resultat: En "nested" struktur
Simrishamn/ ← Git-repo (.git)
└── annat-repo/
└── .git/ ← ÄNNU ETT Git-repo! (konflikt!)
└── index.html

Varför Àr det ett problem?

Hur upptÀcker du problemet?

# Kolla om det finns en .git-mapp i undermappen
Get-ChildItem -Path "3" -Force

# Om du ser en .git-mapp → Du har nested repos!
# Mode Name
# ---- ----
# d--h-- .git ← PROBLEMET!
# -a---- index.html

Lösning: Ta bort den inre .git-mappen

# Steg 1: Ta bort .git-mappen i undermappen
Remove-Item -Path "3\.git" -Recurse -Force

# Steg 2: Verifiera att den Àr borta
Get-ChildItem -Path "3" -Force

# Steg 3: Nu kan du lÀgga till filerna normalt
git add .
git commit -m "LĂ€gger till mapp 3"
git push origin main

Efter fix: Strukturen blir korrekt:

Simrishamn/ ← Git-repo (.git)
└── 3/
└── index.html ← Nu spĂ„ras av Simrishamn-repot!

Hur undvika detta i framtiden?

Om du vill... Gör sÄ hÀr
Kopiera filer frÄn ett annat repo till ditt Klona repot utanför ditt repo, kopiera filerna manuellt, ta inte med .git-mappen
Ha ett repo som "sub-projekt" inne i ett annat AnvÀnd git submodule (avancerat, rekommenderas ej för nybörjare)
Bara skapa en ny mapp med filer Skapa mappen manuellt: mkdir 3, lÀgg till filer, committa

Tumregel: Klona aldrig ett repo inne i ett annat repo om du inte vet exakt vad du gör!

Konflikt vid pull

Problem: Du fÄr felmeddelande om konflikter nÀr du kör git pull

Lösning:

  1. Öppna filerna med konflikter
  2. Redigera och ta bort konfliktmarkeringarna (<<<<<<<, =======, >>>>>>>)
  3. Spara filerna
  4. Kör git add . och sedan git commit -m "Löste konflikter"

Push nekas

Problem: git push nekas för att remote har Àndringar

Lösning:

# HÀmta och slÄ ihop först
git pull origin main

# Sedan pusha igen
git push origin main

5. Tips för PowerShell-anvÀndare

Viktigt: I PowerShell fungerar inte && för att kedja kommandon!

Kör istÀllet kommandona ett i taget:

# FEL - fungerar inte i PowerShell:
cd mapp && git status

# RÄTT - kör separat:
cd mapp
git status

6. Skapa nya mappar (kataloger) i GitHub

Git kan inte spÄra tomma mappar. DÀrför mÄste du alltid skapa en fil i mappen.

Rekommenderat: Skapa mapp med index.html

# I GitHub (webben):
# Klicka "Add file" → "Create new file"
# Skriv i filnamnsfÀltet:
3/index.html

# Detta skapar:
# - Mappen "3"
# - Filen "index.html" i mappen

Vad Àr .gitkeep?

Du kanske har sett att vissa skriver 3/.gitkeep istÀllet. HÀr Àr skillnaden:

Fil Vad det Àr NÀr anvÀnda
index.html En riktig HTML-fil som blir en webbsida ✅ Rekommenderas! Om mappen ska ha en webbsida
.gitkeep En tom "dummy-fil" utan innehÄll Endast om mappen ska vara tom (ingen webbsida)
README.md En dokumentationsfil Om mappen behöver en beskrivning

Viktigt att förstÄ: .gitkeep Àr INTE en speciell Git-funktion!

Det Ă€r bara ett pĂ„hittat namn som utvecklare anvĂ€nder som "placeholder" för att Git ska kunna spĂ„ra mappen. Filen kan heta vad som helst – .gitkeep Ă€r bara en konvention.

Slutsats: AnvĂ€nd 3/index.html direkt – det Ă€r enklare och mer anvĂ€ndbart!


Senast uppdaterad: 18 januari 2026
Repository: github.com/lundgren9/Simrishamn