This is an old revision of the document!


Versionshantering med Git 1

Denna uppgift går ut på att du skall kunna göra de mest grundläggande sakerna i Git.

Git är ett modernt och smart versionshanteringssystem. Målet är att ni skall lära er de mest grundläggande kommandona i git under denna kurs. Att ha en versionshantera när man programmerar tycker jag är ett måste. Om man är fler än en är det ett ett måste. Bilden är från http://git-scm.com/doc

Kommandon som körs under första genomgången
git config
ex.
git config --global user.name "Förnamn Eternamn"
git config --global user.email "din@email.nu"
git config --global core.editor "vim"
git config --global core.excludesfile ~/.gitignore
 
git help
git help log
git help <verb>
git log --oneline --graph --decorate --all --color
git init
git clone
git add
git status
git diff
git diff --cached
git commit
git commit -m "Kommentar om detta commit"
git commit
git reset
git checkout
git push
git fetch
git pull
ställ in .gitconfig. se ex nedan:
 [core]
   editor = /usr/bin/vim # ni får välja annan om ni vill
   excludesfile = {path-to-home-dir}/.gitignore
 [alias]
   # här kan ni gärna lägga in fler
   tree = log --oneline --graph --decorate --all --color
   st = status
 [user]
   name = Joakim Forsgren
   email = jf@oedu.se
 [color]
   branch = auto
   diff = auto
   interactive = auto
   status = auto
Ställa in .gitignore
# Dessa vill man inte ha med
.DS_Store
.buildpath
.project
.metadata
.settings
.idea
# diverse .bak filer vill man inte heller ha med
*.tmp
*.bak
*.swp

Om ni vill kan ni få en lite annorlunda prompt och några andra inställningar.

git clone ~jf/Public/configure
cd configure/
./install.sh
source ~/.bashrc

OBS! Se till att ni har git installerat och att ni har en .gitconfig

1. Öva kommandon

Skapa en katalog och skapa ett git repro i denna katalog. Tanken är att du skall prova att skapa filer, ändra filer och testa de olika kommandona. Ej push och pull, det blir på uppgift 2.

2. Börja versionshantera /var/www/html och använd bitbucket som remote

  1. Skapa en lämplig .gitconfig i roten på din användare.
  2. Skapa ett git-repo i /var/www/html
  3. Skapa en .gitignore
  4. Lägg till alla dina filer.
  5. Gör ett commit
  6. Skapa en användare på bitbucket.
  7. På bitbucket skall du skapa ett repository (ert förnamn typ).
  8. Se till att få in all din kod till bitbucket.
  9. Dela ut detta repository till mig jfoeduse.
  10. Det kan vara en bra ide att lägg in sin publika nyckel på bitbucket för att slippa skriva sitt lösen varje gång.

Från och med nu skall ni göra commit för varje sak ni gjort, tänk på att skriva lämpliga meddelanden.
tex:
Att spara inlägg för gästboken klart
eller
Nu visas inläggen i gästboken korrekt

Ni skall skicka in er kod till bitbucket efter varje lektion (eller ev oftare). Ni jobbar enskilt på denna kurs så kommandona ovan borde räcka till det mesta ni behöver göra.

När man pratar om git kommer så är det svårt att undvika github. Ni skall lära er hämta saker härifrån, ni skall skapa ett konto på github och ni skall skapa ett repository. Ni skall hämta och skicka in till ert repository. Ni skall även pröva att dela ett repository med någon annan av era klasskompisar (så att de kan skriva i till det).

Det är gratis med ett konto på github så länge det man gör är “public”. Om ni gör något som ni inte inte vill att någon annan skall komma år så måste ni välja något annat ställe att lägga det på. Jobbar ni ensamma och endast på vår student server så kan ni versionshantera lokalt.

Skapa ett konto på github och skapa sedan ett repository.

Ställ er på det ställe ni vi hämta ut koden.

# sätt först några värden, ditt namn och email och ev editor för loggmeddelanden
git config --global user.name "Förnamn Eternamn (ert_login_på_github)"
git config --global user.email "din@email.nu"
git config --global core.editor "vim"
# hämta ut koden
git clone https://github.com/ert_login/ert_repository.git
# gå in i ert repository
cd ert_repository
# kolla vilka filer det finns där
ls -la

Skapa några filer i denna katalog, när det är gjort kör följande kommandon:

# för att se hur läget är
git status
# för att lägga till alla filer
git add *
# för att se hur läget är
git status
# för att "skicka" men inte till github utan vara in i den lokala git
git commit -m "ett logg meddelande"
# för att se hur läget är
git status
# ändra i en fil
# för att se hur läget är
git status
# för att "skicka" men inte till github utan vara in i den lokala git
git commit -m "ett logg meddelande"
# skicka upp det till github, måste nog ange login och lösen
git push
# kolla loggen
git log

Gå till github och kolla hur ditt projekt ser ut nu.

Kolla git status och git log mellan varje steg för att få kläm på vad som händer. Gå ihop 2 och eller 3 och 3.

  1. Dela ditt projekt med de du jobbar med (det gör man på github)
  2. Hämta ut din kompis projekt
  3. Ändra i några filer
  4. Skicka in dina ändringar
  5. Be din kompis hämta dina ändringar (git fetch och sen git merge alternativt bara en git pull)
  6. Be din kompis ändra lite också
  7. Be din kompis skicka in sina ändringar
  8. Hämta ut din kompis ändringar