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:

  1. Repository Hosting - Lagring av dina Git-repositorier i molnet
  2. Samarbetsfunktioner - Möjlighet att arbeta tillsammans med andra utvecklare
  3. Kodgranskning - Pull requests för att granska kod innan den slås ihop
  4. Projekthantering - Issues, project boards och milestones
  5. 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

  1. Fork eller clone projektet
  2. Skapa en ny branch
  3. Gör dina ändringar
  4. Committa och pusha
  5. Öppna en Pull Request
  6. Teamet granskar koden
  7. Eventuella ändringar görs
  8. 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

TermFörklaring
RepositoryEn projektmapp med Git-historik
ForkDin egen kopia av någon annans projekt
CloneLadda ner ett repo till din dator
BranchEn parallell version av koden
CommitEn sparad ändring i Git-historiken
PushSkicka commits till GitHub
PullHämta ändringar från GitHub
Pull RequestFörslag på ändringar som ska mergas
IssueEn bugg-rapport eller feature request
MergeSlå ihop en branch med en annan
Main/MasterHuvudbranchen i projektet

Best Practices för GitHub

  1. Skriv tydliga commit-meddelanden - Förklara VAD och VARFÖR, inte hur
  2. Använd branches - Utveckla nya features i separata branches
  3. Pull requests för granskning - Låt andra granska din kod
  4. Dokumentera med README - Gör det lätt för andra att förstå projektet
  5. Använd .gitignore - Undvik att committa onödiga filer
  6. Issues för bug tracking - Håll koll på buggar och features strukturerat
  7. Releasehantering - Använd GitHub Releases för versionshantering
  8. 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!


Undersidor


    Upp

    Upp


    Licens: Apache 2.0 | © 2023 Marcus Medina, Campus Mölndal. Alla rättigheter förbehållna.
    Du får använda och modifiera detta verk enligt villkoren i Apache License, Version 2.0. Du får inte använda detta verk för kommersiella ändamål utan tillstånd från upphovsmannen.