Wikier

Versjonskontroll med Git

Git er et versjonskontrollsystem, som er gunstig for å samarbeide om filer, samt å holde orden på endringer. Denne guiden viser hvordan du setter det opp på hjemmeområdet ditt på NTNU.

English version: Version Control with Git

Alle studenter har mulighet til å få et gratis repository på GitHub hvis man melder fra om at man er student og skal bruke det til et akademisk prosjekt.

Videre følger en veiledning på å opprette og bruke et Git repository på hjemmeområdet ditt eller et gruppeområde ved hjelp av SSH. Etter du har opprettet repositoriet kan du benytte grafisk programvare som det man kan finne her hvis du heller vil det. Den grafiske klienten til windows fra GitHub fungerer ikke helt optimalt opp mot hjemmeområdet / gruppeområdet.

Opprette et Git repository

Før du kan starte å bruke Git, må du ha et repository. Dette er stedet der prosjektet, altså filene og mappene, ligger. Hvis du ikke har tilgang til et repository kan du lage et nytt på en av NTNUs unix-servere. For å logge inn på en av dem, kan du ta en titt på SSH-artikkelen for en oppskrift på hvordan du kobler til login.stud.ntnu.no. Ansatte kan logge seg inn på login.ansatt.ntnu.no.

På stud/ansatt serveren:

git init --bare prosjektnavn.git

For å klone dette depotet så kan en (som ansatt) skrive

git clone login.ansatt.ntnu.no:prosjektnavn.git

eller som student

git clone login.student.ntnu.no:prosjektnavn.git

Installere Git på egen maskin

For linux kan du kjøre kommandoene:

RedHat/Fedora:

  brukernavn@<min datamaskins navn> ~$ yum install git-core

Debain-baserte distroer:

  brukernavn@<min datamaskins navn> ~$ sudo apt-get install git

For Mac OSX:Installer GitHub sin klient og velg også å installere command line tools. Et annet alternativ er å installere git for osx herfra. Det mest avanserte alternativet er å bruke noe som heter MacPorts for så å kjøre kommandoen:

  brukernavn@<min datamaskins navn> ~$ sudo port install git-core +svn +doc +bash_completion +gitweb

For Windows:Installer GitHub sin klient. Du skal deretter bruke programmet som følger med den grafiske klienten som heter git shell. Alternativt kan du laste ned msysgit og bruke msysgit shell-et som følger med.

Initialisere Git på egen maskin

Start Terminal på OSX/Linux, eller start git shell/msysgit shell på Windows.

Bruk kommandoen cd (står for change directory) for å komme til mappen du vil at ting skal bli lagret i.

  brukernavn@<min datamaskins navn> ~$ cd <stien til mappen der jeg vil ha prosjektet mitt>

Når du har kommet til ønsket sti skriver du følgende kommandoer:

 brukernavn@<min datamaskins navn> ~/<prosjekt sti> $ git init
 
 Initialized empty Git repository in <prosjekt sti>.git/
 
 brukernavn@<min datamaskins navn> ~/<prosjekt sti> $ git remote add origin ntnu-brukernavn@login.stud.ntnu.no:<sti>

Hvis du ikke husker hvor stien på login.stud.ntnu.no så kan du logge deg inn via ssh til login.stud.ntnu.no bruke cd kommandoen for å komme deg til mappen der du har opprettet prosjektet. Altså "cd <prosjektnavn>/<prosjektnavn>.git" og kjøre kommandoen "pwd".

For å teste at alt fungerer kan du gjøre din første commit ved å lage en tekstfil, for eksempel test.txt, i prosjektmappene.

 brukernavn@<min datamaskins navn> ~/<prosjekt sti> $ git add <test fil>
 brukernavn@<min datamaskins navn> ~/<prosjekt sti> $ git commit -m 'Initial Commit'
 brukernavn@<min datamaskins navn> ~/<prosjekt sti> $ git push origin master

 "Her vil du bli bedt om å logge inn, og passordet er da passordet til brukeren din på NTNU"

 Counting objects: 3, done.
 Writing objects: 100% (3/3), 224 bytes, done.
 Total 3 (delta 0), reused 0 (delta 0)
 To <ntnu-brukernavn>@login.stud.ntnu.no:<prosjekt sti>.git
 * [new branch]      master -> master

Gratulerer du har nå laget ditt første git repository på student-hjemmeområdet ditt. Minner igjen om at ansatte må bruke login.ansatt.ntnu.no i stedet for login.stud.ntnu.no.

Hvor kan jeg lære å bruke git

Github sin hjelpeseksjon har mye gode veiledninger.

GitHub/CodeSchool sitt introkurs er en interaktiv og fin måte å lære git på.