Git + GitHub i Visual Studio

Samarbejde om én kodebase — uden kommandolinjen

Her vises hvordan man kan samarbejde om at udvikle software, via professionelt software som git og github, ikke med CLI kommandoer, men grafisk via Visual Studio udviklingsværktøjet. Du skal ikke skrive git-kommandoer. Vil du vide, hvad der sker "under motorhjelmen", kan du bagefter læse siden Git CLI.

Git er et versionsstyringssystem: det gemmer projektets historik, så man altid kan se, hvad der er ændret, og gå tilbage til tidligere versioner. GitHub er et sted online, hvor et Git-repository kan ligge — så hele gruppen kan hente og gemme i det samme projekt. Visual Studio har Git indbygget: du behøver ikke noget ekstra program.

Princippet

Projektet findes to steder: i skyen (GitHub — det fælles repository) og hos hver enkelt person (den lokale folder på egen maskine). Man gemmer egne ændringer op i skyen og henter de andres ændringer ned:

Oversigt over Git + GitHub i Visual Studio
Oversigt over Git + GitHub i Visual Studio

Første gang man får projektet ned på sin maskine hedder det klone. Derefter gemmer man egne ændringer med commit og sender dem op med push — og henter de andres ændringer ned med pull.

De to roller

Person A — starter Person B (og de andre) — inviteres
Opretter projektet og repositoriet, og inviterer de andre. Trin 1–4 nedenfor. Accepterer invitationen og kloner repositoriet ned. Trin 5–7 nedenfor.
Overvej først: hvem i gruppen er Person A? Én person udfører trin 1–4 — de andre venter med trin 5–6, indtil invitationen er sendt.

Person A: Opret projekt og repository (trin 1–4)

Trin 1 — Sikr dig, at repositoriets navn er ledigt

Log ind på github.com og find ud af, hvad repositoriet skal hedde (fx menu-app-gruppe4). Søg efter navnet blandt dine eksisterende repositories og vælg et, der ikke allerede er i brug.

Trin 2 — Opret en Solution/Projekt i Visual Studio

En person i gruppen gør følgende:

Beslut først, hvor Solution/Project skal ligge? Det anbefales at anvende en folder som ikke er i et skydrev (dvs. OneDrive, Dropbox eller Google Drive). Microsofts standard-sted er fin til formålet: C:\Users\username\source\repos\... (Visual Studios egen mappe til kode).

Én person i gruppen opretter projektet, som du plejer (dvs. uden top level statements, uden at Solution og Project ligger i samme mappe): File > New > Project (fx en Console App), vælg navn og placering.

Trin 3 — Add Source Control (Git)

I Visual Studio: Vælg Add Source Control i statuslinien nederst til højre, vælg Git - alternativt fra top-menu: Git > Create Git Repository… . I dialogvinduet vælger du Git og GitHub. Visual Studio klarer det meste selv:

Tryk Create and push: Visual Studio laver repositoriet lokalt i .git og pusher det op til GitHub i én handling.

Trin 4 — Invitér de andre fra gruppen (Collaborators)

På github.com: åbn repositoriet > Settings > Collaborators > Add people — og skriv de andres brugernavne eller e-mail-adresser. Hver person får nu en invitation på e-mail.

Person B (de andre): Acceptér og klon (trin 5–6)

Trin 5 — Acceptér samarbejdet

Åbn e-mailen fra GitHub og tryk på knappen for at acceptere invitationen. Efter accepten kan du se repositoriet, når du er logget ind på github.com.

Trin 6 — Klon repositoriet ned til din maskine

Hvor skal den lokale folder ligge? Det anbefales at anvende en folder som ikke er i et skydrev (dvs. OneDrive, Dropbox eller Google Drive). Microsofts standard-sted er fin til formålet: C:\Users\username\source\repos\... (Visual Studios egen mappe til kode).

I Visual Studio: File > Open > Clone repository… — find repositoriet i listen over dine GitHub-repositories (du skal være logget ind med din GitHub-konto), vælg en lokal folder, jævnfør ovenstående, og tryk Clone.

Åbn derefter Solution-filen (.sln) og kør projektet.

Arbejd altid i den klonede folder fra nu af.

Hverdagen bagefter: pull — commit — push

Når repositoriet er oprettet/klonet, er hverdagen for alle i gruppen den samme. Alt sker i vinduet Git Changes - samme vindue som Solution navigator, eller i menuen Git øverst.:

Hvad Hvordan i Visual Studio Hvad det gør
Pull — hent de andres ændringer Knappen Pull i Git Changes-vinduet Henter de nyeste ændringer fra skyen ned til din maskine
Commit — gem en version lokalt Skriv en commit-besked i feltet øverst til højre og tryk Commit All Gemmer dine ændringer som en ny version i din lokale historik
Push — send op i skyen Knappen Push (pil opad) i Git Changes-vinduet Sender dine commits op på GitHub, så resten af gruppen kan se dem
Mødets rytme i gruppen: pull, før du går i gang; commit ofte (hver gang noget virker); push, når du er færdig med en del. Små, hyppige commits giver færre konflikter og bedre historik end ét stort commit til sidst.

Trin 7 — Ved merge-konflikt: Open Merge Editor

En merge-konflikt opstår, når to personer har ændret det samme sted i den samme fil, og Git ikke kan afgøre, hvilken ændring der skal gælde. Det er helt normalt — og Visual Studio hjælper dig gennem det:

  1. Visual Studio stopper og fortæller, at der er konflikter (nogle filer er markerede).
  2. Vælg Open Merge Editor i beskeden øverst til venstre.
  3. Merge Editoren viser versionen fra skyen og din egen version side om side, med resultatet nedenfor. For hver konflikt vælger du den rigtige tekst — eller skriver en blanding.
  4. Tryk Merge All og Accept Merge, når alle konflikter er løst.
  5. Afslut med et commit (og push), så løsningen kommer op i skyen.
Bedste råd mod konflikter: aftal, hvem der rører hvad — del filerne mellem jer, og pull altid, før du begynder at skrive. Så mødes I sjældent om de samme linjer.

Checkliste — hele forløbet på én side


  PERSON A
  1. Sikr at sky-repos' navn er ledigt (github.com)
  2. Opret Solution/Projekt i Visual Studio
  3. Add Source Control -> Git
       .gitignore (VS), add Readme, Private
       -> Create and push
  4. github.com: åbn repos > Settings > Add collaborators

  PERSON B / DE ANDRE
  5. Acceptér samarbejde (e-mail fra GitHub)
  6. Klon repos til lokal folder
       (C:\Users\username\source\...)

  HVERDAGEN (alle)
  7. pull  ->  arbejd  ->  commit  ->  push
     Ved merge-konflikt: Open Merge Editor
    

macOS og Rider

På macOS kan du bruge JetBrains Rider på samme måde som Visual Studio på Windows. Git-integration fungerer stort set ens, men stien til den lokale folder vil typisk være noget i stil med /Users/username/RiderProjects/....

En i gruppen retter .gitignore og tilføjer følgende linjer, f.eks. i toppen af filen, for at ignorere Rider-specifikke og macOS specifikke filer:


# ==========================================
# JetBrains Rider & macOS
# ==========================================
.idea/
*.sln.iml

# macOS systemfiler
.DS_Store
.AppleDouble
.LSOverride
    

Se flere detaljer om hvordan du bruger Riders git-integration her