Git är en tjänst för att skapa bibliotek (repository) som hanterar versioner av kod och för att distribuera kod till andra. En fördel med Git, jämfört med andra tjänster, är att man kan skapa en gren/kopia (branch) på kod för utveckling och sen slå samman (merge) med huvudgrenen (vanligtvis med namnet master).
Git bygger på s.k. distribuerade bibliotek, d.v.s. inget huvudbibliotek, vilket innebär att varje kopia av biblioteket är likvärdiga och t.o.m. kan variera i innehåll. I realiteten brukar varje utvecklare jobba med sin egen kopia och ladda upp till ett delat bibliotek hos en Git-tjänst.
På denna sida beskriver jag hur jag brukar skapa Git-bibliotek (repositories) och tar upp några tips på praktiska åtgärder.
Detta sätt att skapa bibliotek kan användas för redan existerande projekt som man önskar lägga till i Git-tjänst.
.gitignore
och lägg till filer att ignorera.När bibliotek initieras så skapas en mapp .git
.
git init
Ett alternativ är att skapa bibliotek i Git-tjänst och sen klona biblioteket till egen dator.
.gitignore
Filer som innehåller känslig information, så som användarnamn och lösenord,
bör inte läggas till i bibliotek och för undvika detta så kan man använda
en fil med namnet .gitignore
(fil med "bara filändelse"
för Windows-användare ;-)). Det finns inget kommando för detta, så skapa
en vanlig textfil med namnet .gitignore
.
(Mappen .git
behöver inte läggas till i .gitignore
.)
I exempel nedan så ignoreras PHP-fil med datbasanslutning samt filer som
används av sökmotorerna Bing och Google för att validera webbplatsen. De
två första filerna kan finnas var som helst i webbplats, men den sista måste
ligga i roten på webbplatsen då den börjar med /
. Kommentarer
börjar med tecknet #
.
#Ignorera databasanslutning med anvandarnamn och losenord
connection.php
#Ignorera valideringsfiler fran sokmotorerna Bing och Google
BingSiteAuth.xml
/google*.html
Tips: Skapa gärna en kopia på känsliga filer och ersätt det känsliga
med exempelvärden - gärna med text som EXEMPEL
eller EXAMPLE
i filnamnet (ex. connection_EXAMPLE.php
).
För att kunna ladda upp kod till Git-tjänst så registerar man biblioteket från Git-tjänst i det lokala biblioteket.
Tips: När bibliotek skapas lokalt först så bör man skapa ett tomt bibliotek i Git-tjänst för att undvika konflikter mellan kod i de två biblioteken. ;-)
Att registrera bibliotek från Git-tjänst görs med kommandot remote add
.
Som parameter till kommandot skickas namn på Git-tjänst (oftast origin)
och adress till bibliotek.
git remote add origin https://<url>/repo.git
För att verifiera bibliotek kan kommandot remote
kombineras
med parametern -v
.
git remote -v
(Det går att registera flera bibliotek i Git-tjänster, vilket är varför man hela tiden måste ange namn på Git-tjänst [oftast origin] med diverse kommando.)
Om bibliotek redan existerar i Git-tjänst så kan man klona (clone) bibliteket till egen dator. I samband med kloningen så registeras samtidigt bibliotek i Git-tjänst i det lokala biblioteket.
Detta sätt att skapa bibliotek kan också användas för snabbare komma igång, d.v.s. bibliotek skapas och initieras i Git-tjänst och vid kloning så registreras bibliotek från Git-tjänst samtidigt.
För att klona ett bibliotek så används kommandot clone
och som
parameter skickas adress (URL) till bibilotek i Git-tjänst.
git clone https://<url>/repo.git
Efter att bibliotek etablerats lokalt så består fortsatt arbete i de tre uppgifterna nedan.
Filer (och mappar) som ska hanteras i bibliotek registreras i bibliotek.
För att registrera alla filer och mappar i aktuell mapp (och undermappar)
kan man använda parametern --all
.
git add --all
Kommandot status
kan användas för att se vilka filer som lades
till i bibliotek (t.ex. för att verifiera att inga känsliga filer inkluderats ;-)).
git status
När man checkar in ändringar så är det kotym att lägga till en kort förklaring (max 50 tecken) som beskriver ändringar.
git commit
Ett snabbare sätt att checka in är att skicka med kommentar som en parameter
till kommandot commit
och då använder man parametern -m
följt av kommentaren. (Därmed slipper man lära sig verktyg som editorer som
vi om på Un*x-baserade datorer, så som macOx och Linux. ;-))
git commit -m "Initial commit
För att dela kod med andra, d.v.s. spara till server, så måste kod laddas
upp till server, vilket görs med kommandot push
. Som parametrar
bifogas vilken källa (ofta origin
) och vilken gren av källkod
(t.ex. master
). Om inte tidigare inloggad i Git-tjänst från
dator så lär en inloggningsruta visas.
git push origin master
Filer som är registrerade i bibliotek kallas för spårade (tracked) filer och kan checkas in (be commited). I motsats så kallas filer som inte registrerats eller vars ändringar inte registrerats som ospårade (untracked).
Exempel på andra typer av kodbibliotek är Subversion (SVN) och Microsofts Team Foundation Server (TFS).
I detta avsnitt så tar jag upp några tips på några mindre vanliga åtgärder som jag har haft användning för. (ATT GÖRA: Flytta till egen sida?)
Om man gör som jag brukar göra, d.v.s. checka in kod, fortsätta ändra och sen komma på att oönskade ändringar checkats in, så kan det vara praktiskt att ångra incheckning utan att förlora ändringarna.
git reset --mixed