Git via kommandoprompten

Denna sida beskriver hur du arbetar med Git versionshanteringssystem via kommandoprompten.

För att följa guiden behöver du ha en kommandobaserad Git-klient installerad. I Mac OS X finns den redan installerad, men i Windows behöver den installeras manuellt. För instruktioner, se Installera Git i Windows.

För instruktioner om hur du använder den grafiska Git-klienten SourceTree, gå till Git via SourceTree.

Innehåll på denna sida:

Konfiguration

Innan du börjar använda git behöver du kontrollera inställningarna för namn och e-postadress. Uppgifterna används senare om du ska checka in filer.

Använd följande kommandon:

git config --global user.email "you@example.com"
git config --global user.name "Förnamn Efternamn"

För att kontrollera inställningarna, använd följande kommando:

git config --global --list

Klona ett repository

För att kunna arbeta med filerna lokalt så behöver du ladda ner dess git repository. Detta kallas "clone" i Git-terminlogi.

  1. Surfa till repositoryt på Bitbucket och kopiera adressen uppe till höger på skärmen.
  2. Öppna ett terminalfönster/kommandoprompt.
  3. Ställ dig i den mapp där du vill spara källkodsfilerna. I denna mapp kommer Git att skapa en underkatalog med samma namn som repositoryt
  4. Skriv följande kommando:
    git clone <adressen du kopierade>
  5. Om du inte ser något felmeddelande så laddas nu filerna ned till mappen.

Redigera filer

Du kan nu arbeta med filerna i din arbetsmapp med valfritt program.

Markera filer för incheckning (stage)

Om du har gjort ändringar som du vill checka in, behöver du först markera vilka filer det gäller. Git-termen för detta är "stage".

Se till att du står i rotkatalogen för det repository du arbetar med. Kontrollera sedan vilka förändringar git har registrerat i din lokala arbetsmapp med kommandot git status

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   docs/TKB_clinicalprocess_healthcond_actoutcome.docx

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    docs/AB_clinicalprocess_healthcond_actoutcome.doc
			
Enligt ovan har Git registrerat följande:

Båda filerna anges i rött, eftersom de inte har markerats för incheckning

För att markera att du vill checka in en fil, använd följande kommando:

git add <filnamn enligt "git status">

Om du vill markera en hel mapp kan du använda t.ex. git add docs.

För att markera alla förändrade filer kan du använda git add *

Kontrollera sedan med git status att rätt filer markerats.

Avmarkera filer (reset)

För att avmarkera filer som du markerat med "git add" använder du kommandot "reset".

git reset <filnamn enligt "git status">

Du kan även avmarkera hela kataloger med t.ex. git reset docs, eller avmarkera alla filer med git reset *

OBS! Dina ändringar i filerna kommer inte att återställas av detta kommando.

Återställa filer (checkout)

Om du vill ångra ändringar som du gjort i filer kan du använda kommandot checkout

git checkout <sökväg enligt "git status">

Dina ändringar i angiven fil återställs nu med den senast incheckade versionen.

Om du vill återställa alla filer till senaste version kan du använda git checkout master. Observera att det innebär att du får den senaste versionen från ditt lokala repository. Det kan finnas senare uppdateringar på Bitbucket. Se skicka och hämta förändringar nedan för mer information.

Checka in filer (commit)

När du har markerat några filer för incheckning enligt ovan, kan du checka in dem. Detta kallas "commit".

Använd kommandot git status för att kontrollera att rätt filer är markerade (visas i grönt):

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   docs/AB_clinicalprocess_healthcond_actoutcome.doc
    modified:   docs/TKB_clinicalprocess_healthcond_actoutcome.docx
			

För att checka in de filer som har markerats använder du kommandot git commit och skriver en incheckningskommentar:

git commit -m "Lagt till AB-dokument."

Filerna är därefter incheckade i ditt lokala Git-repository, men har fortfarande inte skickats till Bitbucket. För att göra det, se "skicka och hämta förändringar" nedan.

Skicka och hämta förändringar till Bitbucket (push och pull)

För att skicka förändringar till Bitbucket används kommandot git push

git push origin master

För att hämta förändringar från Bitbucket används kommandot git pull.

git pull origin master

Arbeta med taggar

Inom RIVTA används "tags" för att markera vilken version som motsvarar en specifik release eller releasekandidat

Visa tillgängliga taggar

För att visa vilka taggar som finns i ett repository används följande kommando:

git tag

Växla till en tag

För att uppdatera din lokala arbetsmapp med den version av filerna som motsvarar en specifik tagg, använd följande kommando:

git checkout tags/<tag-namn enligt "git tag">

Kommandot fungerar även utan "tags/" före tag-namnet, men om det finns en branch med samma namn så tolkas kommandot som att du vill checka ut branchen istället.

För att växla tillbaka till den senaste versionen, använd git checkout master.

Skapa en tag

För att skapa en tagg, används kommandot git tag tillsammans med namnet på taggen och en incheckningskommentar.

git tag -a <tag-namn> -m "Tag för RC4"

Taggen kommer nu att motsvara den aktuella versionen i din arbetsmapp. Vilken version som är aktuell ser du med hjälp av git status.

Notera att git har två typer av taggar, lightweight och annotated. Enligt best practice använder ni annotated (argumentet -a) för att markera release- och RC-taggar.

Publicera en tag till Bitbucket

Taggar behöver inte checkas in med git commit, men behöver däremot publiceras till Bitbucket med git push

Använd följande kommando:

git push origin <tag-namn>

Din tagg ska därefter vara synlig i Bitbuckets webbgränssnitt.

Radera en tag

För att radera en tag, använd följande kommando:

git tag -d <tag-namn>

Ovanstående kommanod tag bort taggen i ditt lokala repository. Om taggen även finns på Bitbucket, behöver även följande kommando användas:

git push origin :tags/<tagnamn>