introduksjon til git og github - universitetet i oslo · git basics før ler kan lastes o pp, må...
TRANSCRIPT
INTRODUKSJON TIL GIT OGINTRODUKSJON TIL GIT OGGITHUBGITHUB
Presentasjon av Presentasjon av Kudakwashe Kidwell Kudakwashe Kidwell ChambweChambwe
DAGENS AGENDADAGENS AGENDA1. Hva er versjonshåndtering?2. Hva er git?3. Hvorfor git?4. Hvordan git?
git "språket"git basicsgit arbeids�ytgit verktøytips og tricks
5. GitHub
HVA ERHVA ERVERSJONSHÅNDTERING?VERSJONSHÅNDTERING?
Versjonshåndtering (Version Control) er et verktøy som lar oss..
SAMARBEIDESAMARBEIDESamarbeide med andre på ett eller �ere prosjekter
HÅNDTERE OG OVERVÅKE ENDRINGERHÅNDTERE OG OVERVÅKE ENDRINGERVi alle gjør feil.. Tanken med versjonshåndtering er at vi skal kunne se alt som er blitt gjort,
og ha muligheten til å tilbakestille ved eventuelle feil
HVAHVA ER GIT? ER GIT?VCSVCS
Et versjonshåndteringssystem (VCS) for å håndtere og administrere endringer av �ler ogeventuelt koordinere når �ere samarbeider
DVCSDVCSEt distribuert versjonshåndteringssytem (DVCS), hvor brukerne/klienter speiler hele
repoet istedet for å stadig hente ut det nyste �lene (i.e. sentralisert). M.a.o alle brukerehar en kopi av repoet.
HVORFOR GIT?HVORFOR GIT?Raskt! Henter informasjon om �ler og prosjektetraskt og e�ektivt, siden nesten alt er lokalt.Distribuert! Alle har en kopi av "repoet"Skalerbart! Gir mulighet for tusenvis av utviklere tilå sammarbeide på samme prosjektet og sammekoden.
HVORFOR GIT?HVORFOR GIT?Lokalt! Trenger ikke nettverk. Alt kan gjøres o�ine,med mindre man skal jobbe med andre (i.e.GitHub).Branches! Eksperimetér med koden og prosjektet iet separat miljø. Enkelt å lage, endre og slette"features".Håndterbart! Alle en lokal kopi av repoet, som betyrat alle har oversikt over �lene og historien til �lenetil enhver tid.
HVORDAN GIT?HVORDAN GIT?
GIT "SPRÅKET"GIT "SPRÅKET"REPOSITORY?REPOSITORY?
Ett "oppbevaringssted" eller "mappe" hvor alle �lene som er i git-prosjektet be�nner seg
BRANCH?BRANCH?En gren, eller en uavhengig serie med commits in versjonsdatabase. Kan brukes som en
"lekeplass" for å eksperiementere med features uten å påvirke hoved�lene
COMMIT?COMMIT?Et objekt som holder på informasjonen om en spesi�kk endring. Ofte har en melding.
GIT BASICSGIT BASICS
Kloner repositoriet du henter fra.
Henter nyeste versjon av repoet du be�nner deg i.
Laster opp nyeste comittede versjonen du har av repoet du be�nner deg i.
Legge til, nye eller endrede �ler som du vil laste opp til repoet.
git clone [url]
git pull
git push
git add [file]
GIT BASICSGIT BASICS
Før �ler kan lastes opp, må de committes. Dette må gjøres med en melding.
Lager en branch/gren.
Laster opp alle endringer (i.e. slå sammen) fra en gren til den du står på (ved kall). NB: Herkan det oppstå kon�ikter(!).
Skifter gren dun står på. Brukes for å navigere seg fra/til ulike grener.
git commit -m [message]
git branch [branch-name]
git merge [branch]
git checkout [branch-name]
GIT ARBEIDSFLYTGIT ARBEIDSFLYTEN FORENKLET ILLUSTRASJONEN FORENKLET ILLUSTRASJON
GIT ARBEIDSFLYTGIT ARBEIDSFLYTDET STORE BILDETDET STORE BILDET
GIT ARBEIDSFLYTGIT ARBEIDSFLYTSPESIELLE FILERSPESIELLE FILER
Les-meg-�l på GitHub er denne �len som vises påLes-meg-�l på GitHub er denne �len som vises pågithub-siden deres.github-siden deres.
Listen av �ler/mapper som ikke skal committes (e.g.Listen av �ler/mapper som ikke skal committes (e.g.libraries, api-nøkler, etc..) libraries, api-nøkler, etc..)
Lisensen du publiseres under. Lisensen du publiseres under.
README.md
.gitignore
.gitignore generator.gitignore generatorLICENSE.txt
Oversikt herOversikt her
GIT VERKTØYGIT VERKTØYGUI KLIENTERGUI KLIENTER
Det �nnes et bredt utvalg av git-applikasjoner med gra�ske grensesnitt. De ulikeneapplikasjonene gir et visuelt oversikt av bl.a. git-kommandoer og repoet.
GIT WEBTJENESTERGIT WEBTJENESTERDet �nnes også ulike webtjenester som tar seg av å "hoste" git-repoer. E.g. Gitlab,
Bitbucket, GitHub (mest aktuelt), etc...
Oversikt her
GIT VERKTØYGIT VERKTØY
TIPS OG TRICKSTIPS OG TRICKS#1 RESPEKTÉR MASTER#1 RESPEKTÉR MASTER
ALDRIALDRI last opp kode som ikke kjører til master. Worst last opp kode som ikke kjører til master. Worstcase; bruk branch.case; bruk branch.
TIPS AND TRICKSTIPS AND TRICKS#2 BRUK GIT!#2 BRUK GIT!
Det kan være skremmende.. men det er virkeligDet kan være skremmende.. men det er virkelignyttig. Dere sparer mye tid i det lange løp. When innyttig. Dere sparer mye tid i det lange løp. When in
doubt, google it!doubt, google it!
#3 SLACK!#3 SLACK!
More code, more problems.. Viktig på kunneMore code, more problems.. Viktig på kunnekommunisere for eks. ved mergekon�ikter. Viktigkommunisere for eks. ved mergekon�ikter. Viktig
verktøy verktøy for kommunikasjon er slack. Kan integreresfor kommunikasjon er slack. Kan integreresmed med gitgit