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.
Länkar
- Git - Book - Här finns det mesta, läs kap 2 för att få en grund
- Git - Docs - för att se alla kommandon och läsa vad man kan göra med dem.
- En video - Mycket bra tycker jag
- Git Referens - Det viktigaste
- Versionshantering med Git - väldigt enkel, bara det mest grundläggande
- Linus Torvalds - denna bör man se, typ allmänbildning
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
Genomgång
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
Uppgifter efter genomgång:
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
- Skapa en lämplig .gitconfig i roten på din användare.
- Skapa ett git-repo i /var/www/html
- Skapa en .gitignore
- Lägg till alla dina filer.
- Gör ett commit
- Skapa en användare på bitbucket.
- På bitbucket skall du skapa ett repository (ert förnamn typ).
- Se till att få in all din kod till bitbucket.
- Dela ut detta repository till mig jfoeduse.
- 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.
OBS! Viktigt!!
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.
Github
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.
1. Skapa ett konto och ett repository
Skapa ett konto på github och skapa sedan ett repository.
2. Hämta ut "koden" till student servern
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
3. Skapa några filer och skicka upp till github
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.
4. Dela ditt projekt med någon i klassen och få något projekt delat till dig.
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.
- Dela ditt projekt med de du jobbar med (det gör man på github)
- Hämta ut din kompis projekt
- Ändra i några filer
- Skicka in dina ändringar
- Be din kompis hämta dina ändringar (
git fetch
och sengit merge
alternativt bara engit pull
) - Be din kompis ändra lite också
- Be din kompis skicka in sina ändringar
- Hämta ut din kompis ändringar