Kom igång med Git och GitHub

By . Latest revision .

Git och GitHub är två verktyg inom versionshantering som växer i populäritet bland webbutvecklare. Här får du hjälp att komma igång med grunderna till de två populära verktygen. Git är versionshanteringssystemet och GitHub är en webbplats som erbjuder utvecklare att “hosta” sina git-projekt. När de samverkar, eller när du får dem att samverka, skapar du en gedigen grund till din hantering av programvara, en grund som håller långt in i professionell programutveckling.

#Git - ett versionshanteringsverktyg

#Om Git

Git är ett versionshanteringssystem utvecklat av samma person som skapat Linux, Linus Torvalds. Linus var inte nöjd med det versionshanteringsverktyg de använde så han initierade att de skulle bygga ett eget 1. Sagt och gjort, Git föddes.

Git är alltså ett verktyg för att konfigurationshantera programvara. Det fungerar enklast att skriva git-kommandon i terminalfönstret. Även om det finns visst stöd via grafiska verktyg så har jag för egen del inte funnit en bra klient, ännu. Så, här handlar det om terminalfönster.

Webbplatsen för Git finns här:
git-scm.com/

På webbplatsen hittar vi dokumentation och vi hittar en trevlig liten interaktiv testapplikation som kan hjälpa oss att komma igång med Git.

Så långt så bra, låt oss börja med att installera Git på vår egen maskin.

#Installera Git

Börja med att ladda ned och installera programvaran för Git.

Du kan följa med hur jag gör i följande video.

Mikael installerar Git.

Bra, Git är installerat och vi kan skapa vårt första repository.

#Mitt första repository

Det allra första vi gör är att konfigurera vem du är som användare.

git config --global user.name "Mikael Roos"
git config --global user.email "mos@dbwebb.se"
git config --list

Ett Git repository är en katalog som hanteras av Git. Låt oss skapa ett litet testprojekt som vi initierar i Git. Följande kommandon hjälper oss med det.

mkdir hello
cd hello
git init
touch hello.php 
touch README.md
git add .
git status
git commit -m "Initial commit"

Du kan följa med hur jag gör i följande video.

Mikael skapar ett Git repository.

Nästa steg får bli att koppla ihop repositoryt med webbtjänsten GitHub.

“LF replaced with CRLF”

Får du varningar om “LF replaced with CRLF”? Läs då i forumet om bakgrunden och hur du kan lösa så att git INTE automatiskt översätter mellan Windows/Unix radbrytningar.

#GitHub - webbtjänst för att publicera ditt repo

GitHub är en webbtjänst som erbjuder möjligheten att lagra Git-repo på deras servrar. Det är ett trevligt webbgränssnitt och många stora öppna källkodsprojekt använder sig av GitHub.

Det vi skall göra nu är att skapa ett konto på GitHub och därefter länka samman vårt nyskapade lokala repo så att det hamnar på GitHub.

Du kan följa med hur jag gör i följande video.

Mikael länkar det lokala repot till ett på GitHub.

De magiska orden som länkar ihop ditt lokala repo med ett repo på GitHub är alltså:

git remote add origin https://github.com/dbwebb/hello
git push -u origin master

Nu har vi skapat ett repo som finns på GitHub. Bra, då kan vi börja jobba på riktigt.

Bugg i Git Windows 1.8.5 2

När man pushar ett repo över https så fungerar inte interaktiv inloggning, man “promptas” inte för lösenord och användare. Använder man ssh-nycklar är det inget problem, annars behöver man nedgradera till version 1.8.4.

git --version

Skapa sedan om ditt repository från början.

#Jobba i det lokala repot och uppdatera GitHub

#Committa och pusha

Nu har du ditt lokala repo som du kan utveckla i. Så fort du gjort några ändringar så kan du göra push på dem till github enligt följande.

git commit -a -m "Explain what changes I did" 
git push

Du kan committa en specifik fil, commit README.md, eller alla filer som har ändringar i sig, commit -a. En commit görs till ditt lokala repository.

När du sedan gör en git push så laddas de ändrade filerna upp till GitHub.

Sedan är du i synk, dina ändringar i ditt lokala repo matchar repot på GitHub. Det är viktigt att hålla ordning så att GitHub är i synk med din lokala variant.

Ny default-inställning för Git-push från och med version 2.0 3

Jag brukar alltid använda mig av git push och från och med version 2.0 av Git så kan det kräva att du behöver göra en default-inställning.

git config --global push.default simple

#Tagga

När du har gjort en del ändringar så vill du troligen skapa en ny version av din kod, en version som du vid behov kan gå tillbaka till. Detta gör du genom att sätta en tag med Git.

Följande kommandon lägger till en tagg och pushar den till GitHub.

git tag -a v0.1 -m "Descriptive text about the tag" 
git push --tags

Du kan följa med hur jag gör i följande video.

Mikael jobbar med Git lokalt, gör en tagg och uppdaterar GitHub.

Läs gärna mer i manualen om respektive kommando:

#Clona repot till driftsservern

Nu när repot finns på GitHub så är det enkelt för en och var att ladda ned sin egen kopia av det. För min del så vill jag ladda ned det till en driftsserver. Det magiska ordet heter clone.

Vill man senare ladda ned den allra senaste varianten så görs det med pull.

git clone https://github.com/dbwebb/hello

git pull # hämta ned senaste ändringarna från repot på GitHub

Du kan följa med hur jag gör i följande video.

Mikael skapar konto på GitHub och länkar ihop det lokala repot med GitHub.

Läs gärna mer i manualen om respektive kommando:

#Sammanfattningsvis

Nu har du kommit igång med både Git och GitHub. Som du säkert förstår så är detta bara grunderna och det finns mycket att lära sig om både Git och GitHub. Men, nu har du iallafall en bas att jobbar vidare ifrån.

Lycka till och kämpa på!

Dagens lästips är manualen för Git.

När du blir varm i kläderna så kommer du att vilja sätta upp ssh-nycklar så att du slipper skriva lösenordet varje gång. Läs om hur du sätter upp ssh-nycklarna på GitHub. Men det kan upplevas lite pilligt, när du gör det första gången.

#Diskutera i forumet

Du kan diskutera denna artikel i forumet, eller ställa frågor kring Git och GitHub, artikeln har en egen tråd.

#Referenser

Följande är referenser som använts som fotnötter i texten.

#Revision history

  • 2014-01-27: (G, mos) Lade till git status samt problem på windows med git 1.8.5 med https interkativt, samt länk till ssh-nycklar.
  • 2013-10-29: (F, mos) Bytte användare till GitHub test repository från dbwebb1 till dbwebb.
  • 2013-04-04: (E, mos) Blå ruta om git som översätter radbrytningar automatiskt.
  • 2013-02-01: (D, mos) Skrivfel git tag -a.
  • 2013-01-15: (C, mos) Helt omskriven från början, med screencasts.
  • 2012-08-10: (B, mos) Flyttad från WP till Lydia.
  • 2012-05-07: (A, rgi) Första utgåvan.

Document source.

Category: artikel.