GitHub
GitHub är en webbaserad plattform för att hosta och hantera Git-repositorier. Det är viktigt att förstå att GitHub och Git är inte samma sak - Git är versionshanteringssystemet som körs lokalt på din dator, medan GitHub är en molntjänst som tillhandahåller hosting och samarbetsfunktioner för dina Git-projekt.
Introduktion
GitHub har blivit den ledande plattformen för koddelning och samarbete inom mjukvaruutveckling. Men vad gör GitHub så speciellt? Och hur skiljer det sig från Git som du använder lokalt? Dessa frågor kommer att besvaras under avsnittets gång.
TL;DR
GitHub är en molnbaserad plattform för Git-repositorier som erbjuder kraftfulla samarbetsfunktioner, kodgranskning, projekthantering och mycket mer. Det är inte samma sak som Git - Git är versionshanteringssystemet, GitHub är plattformen där du delar och samarbetar kring din Git-kod.
När du läst detta ska du kunna
- Förstå skillnaden mellan Git och GitHub
- Förklara vad GitHub är och dess roll inom modern mjukvaruutveckling
- Diskutera fördelar med att använda GitHub för dina projekt
- Identifiera olika funktioner och användningsområden för GitHub
- Förstå grundläggande GitHub-koncept som repositories, issues och pull requests
Git vs GitHub - Vad är skillnaden?
Det är viktigt att förstå skillnaden mellan dessa två:
Git
- Versionshanteringssystem som körs lokalt på din dator
- Skapad av Linus Torvalds 2005
- Håller koll på ändringar i din kod över tid
- Fungerar helt utan internetanslutning
- Open source och gratis
GitHub
- Molnbaserad plattform för att hosta Git-repositorier
- Ägs av Microsoft (köptes 2018)
- Tillhandahåller webbaserat gränssnitt för Git
- Kräver internetanslutning för de flesta funktioner
- Erbjuder både gratis och betalda planer
Enkelt uttryckt: Git är verktygslådan, GitHub är verkstaden där du delar dina verktyg och samarbetar med andra.
Vad är GitHub?
GitHub är en webbaserad plattform som erbjuder:
- Repository Hosting - Lagring av dina Git-repositorier i molnet
- Samarbetsfunktioner - Möjlighet att arbeta tillsammans med andra utvecklare
- Kodgranskning - Pull requests för att granska kod innan den slås ihop
- Projekthantering - Issues, project boards och milestones
- Social Coding - Följ projekt, stjärnmärk repos, bidra till open source
Fördelar med GitHub
- Backup i molnet: Din kod är säker även om din dator går sönder
- Samarbete: Arbeta enkelt med teammedlemmar eller open source-bidragsgivare
- Portfolio: Visa upp dina projekt för potentiella arbetsgivare
- Community: Tillgång till miljontals open source-projekt
- Integrationer: Fungerar med tusentals utvecklingsverktyg och tjänster
- Gratis för open source: Publika repositorier är helt gratis
Grundläggande GitHub-koncept
Repository (Repo)
En mapp som innehåller ditt projekt och dess hela Git-historik. Kan vara publik eller privat.
Fork
En kopia av någon annans repository som du kan experimentera med utan att påverka originalet.
Clone
Ladda ner en kopia av ett repository till din lokala dator.
Pull Request (PR)
Ett förslag på ändringar som du vill ska slås ihop i huvudprojektet. Andra kan granska och kommentera.
Issues
Spåra buggar, feature requests och andra uppgifter. Fungerar som en projekthanteringsverktyg.
Branch
En parallell version av din kod där du kan arbeta utan att påverka huvudversionen (main/master).
Användningsområden
- Open Source-bidrag: Delta i världens största open source-community
- Team-projekt: Samarbeta effektivt med ditt utvecklingsteam
- Portfolio: Visa upp dina projekt för arbetsgivare
- Kodgranskning: Säkerställ kodkvalitet genom peer reviews
- Dokumentation: Använd GitHub Pages för projektdokumentation
- Issue Tracking: Hantera buggar och feature requests strukturerat
Grundläggande GitHub-arbetsflöde
1. Skapa ett Repository
# Skapa nytt repo på GitHub.com via webgränssnittet
# Eller skapa lokalt och pusha:
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/username/repository.git
git push -u origin main
2. Klona ett Repository
# Ladda ner ett projekt till din dator
git clone https://github.com/username/repository.git
cd repository
3. Skapa en Branch och Pull Request
# Skapa ny branch för din feature
git checkout -b feature/min-nya-funktion
# Gör ändringar och committa
git add .
git commit -m "Lägg till ny funktion"
# Pusha din branch till GitHub
git push origin feature/min-nya-funktion
# Skapa sedan en Pull Request via GitHub-gränssnittet
4. Samarbeta via Pull Requests
- Fork eller clone projektet
- Skapa en ny branch
- Gör dina ändringar
- Committa och pusha
- Öppna en Pull Request
- Teamet granskar koden
- Eventuella ändringar görs
- PR mergas in i main branch
GitHub för C#-utvecklare
.gitignore för C# projekt
GitHub tillhandahåller automatiska .gitignore-mallar. För C# inkluderar den:
# Build results
bin/
obj/
*.exe
*.dll
*.user
*.suo
# NuGet packages
packages/
*.nupkg
# Visual Studio files
.vs/
*.csproj.user
README.md Best Practices
Varje bra GitHub-projekt bör ha en README som innehåller:
- Projektbeskrivning
- Installationsinstruktioner
- Användningsexempel
- Bidragsinformation
- Licens
Termer du behöver känna till
| Term | Förklaring |
|---|---|
| Repository | En projektmapp med Git-historik |
| Fork | Din egen kopia av någon annans projekt |
| Clone | Ladda ner ett repo till din dator |
| Branch | En parallell version av koden |
| Commit | En sparad ändring i Git-historiken |
| Push | Skicka commits till GitHub |
| Pull | Hämta ändringar från GitHub |
| Pull Request | Förslag på ändringar som ska mergas |
| Issue | En bugg-rapport eller feature request |
| Merge | Slå ihop en branch med en annan |
| Main/Master | Huvudbranchen i projektet |
Best Practices för GitHub
- Skriv tydliga commit-meddelanden - Förklara VAD och VARFÖR, inte hur
- Använd branches - Utveckla nya features i separata branches
- Pull requests för granskning - Låt andra granska din kod
- Dokumentera med README - Gör det lätt för andra att förstå projektet
- Använd .gitignore - Undvik att committa onödiga filer
- Issues för bug tracking - Håll koll på buggar och features strukturerat
- Releasehantering - Använd GitHub Releases för versionshantering
- Säkerhet - Använd aldrig hårdkodade lösenord eller API-nycklar
GitHub vs Alternativ
GitLab
- Self-hosted alternativ
- Inbyggd CI/CD
- Mer företagsfokuserad
Bitbucket
- Ägs av Atlassian
- Bra integration med Jira
- Populärt i företagsmiljöer
Azure DevOps
- Microsofts egen plattform
- Tät integration med Azure
- Bra för C#/.NET-utvecklare
Varför GitHub? Största community, bäst för open source, enklast att komma igång med.
Slutsats
GitHub är mycket mer än bara en plattform för kodlagring - det är ett komplett ekosystem för modern mjukvaruutveckling. Genom att förstå skillnaden mellan Git (versionshanteringssystemet) och GitHub (plattformen) kan du använda båda verktygen effektivt för att samarbeta, dela kod och bygga fantastiska projekt.
Kom ihåg: Git är verktyget, GitHub är verkstaden!
Obligatorisk dad joke
Varför är GitHub så populärt bland utvecklare? För att alla vill ha en “pull” i rätt riktning!