Denna guide beskriver hur du synkroniserar ett lokalt Git-repository med ett remote repository pÄ GitHub.
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
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.
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"
Om du har flera GitHub-konton Àr det viktigt att veta vilket konto Git anvÀnder:
# 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
# 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
# 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)
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) |
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.
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])?
SSH har en sÀkerhetsfunktion för att skydda dig mot "man-in-the-middle"-attacker:
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!
Om fingeravtrycket matchar GitHub:s officiella (se tabellen nedan) Àr det sÀkert att svara yes eftersom:
~/.ssh/known_hostsđ Ingen panik! Detta Ă€r helt normalt första gĂ„ngen.
Det Àr faktiskt ett tecken pÄ att SSH fungerar och skyddar dig!
# 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
Ă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:
ssh -T git@github.com testar SSH-vÀgenNÀr du klonar ett repo pÄ GitHub kan du vÀlja mellan HTTPS och SSH:
GitHub visar tvÄ alternativ: HTTPS eller SSH
| 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!
# 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!
# 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/:
id_ed25519 - Din privata nyckel (DELA ALDRIG!)id_ed25519.pub - Din publika nyckel (denna ger du till GitHub)# 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
# 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
GĂ„ till: https://github.com/settings/ssh/new
GitHub:s sida för att lÀgga till SSH-nycklar
kentlundgren)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.
# 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.
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)
Om du har flera konton (t.ex. kentlundgren och lundgren9) och vill anvÀnda olika nycklar:
LÀgg till samma publika nyckel pÄ bÄda GitHub-kontona. Fungerar utmÀrkt!
# 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
ssh-keygen -t ed25519 -C "email"Start-Service ssh-agentssh-add ~/.ssh/id_ed25519Get-Content ~/.ssh/id_ed25519.pubssh -T git@github.comgit remote set-url origin git@github.com:user/repo.gitâ ïž Begreppsförvirring! Det finns tvĂ„ helt olika saker som bĂ„da kallas "SSH":
git push/pullDessa Àr INTE samma sak!
NÀr du öppnar Cursor ser du tre alternativ pÄ startsidan:
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 |
Om du klickar pÄ "Connect via SSH" visar Cursor dessa tillÀgg:
Marketplace: TillÀgg för fjÀrranslutning
| 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 |
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.
\\wsl$\...)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).
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"
Om du har flera GitHub-konton (t.ex. kentlundgren och lundgren9) behöver du förstÄ skillnaden mellan lokal identitet och remote-Ätkomst.
| 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).
Exempel: Du Àr inloggad lokalt som kentlundgren men vill pusha till lundgren9/Simrishamn.
Lösning: Bjud in dig sjÀlv som contributor!
lundgren9 (repo-Ă€garen)kentlundgrenkentlundgren och acceptera inbjudanNu kan kentlundgren pusha till repot!
# 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
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!
Om du försöker pusha och fÄr ett felmeddelande som detta:
Exempel pÄ felmeddelande nÀr man saknar push-rÀttigheter
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).
Om du har flera GitHub-konton och vill att ditt "andra" konto ska kunna pusha:
â Rekommenderas! Detta Ă€r den enklaste lösningen om du har flera konton.
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
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
git remote -vNÀ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:
Space för att scrolla nerq för att avslutagit config --list --show-origin | findstr user för att filtreragit pull origin main
Redigera, skapa eller ta bort filer som vanligt
git status
# LÀgg till alla Àndringar
git add .
# ELLER lÀgg till specifik fil
git add filnamn.txt
git commit -m "Beskrivning av Àndringarna"
git push origin main
| 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 |
Ett vanligt misstag Àr att klona ett repo inne i ett annat repo. Detta skapar problem!
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
git add . i Simrishamn lÀggs inte filerna frÄn det inre repot till# 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
# 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!
| 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!
Problem: Du fÄr felmeddelande om konflikter nÀr du kör git pull
Lösning:
<<<<<<<, =======, >>>>>>>)git add . och sedan git commit -m "Löste konflikter"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
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
Git kan inte spÄra tomma mappar. DÀrför mÄste du alltid skapa en fil i mappen.
# 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
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