## Grunnleggende om GIT for nybegynnere innen webutviklingđ¶
## Hva er `Git`?
1. Git er et distribuert versjonskontrollsystem.
2. Hele kodebasen og historikken er tilgjengelig pÄ hver utviklers datamaskin,
noe som gjÞr det enkelt Ä opprette og slÄ sammen grener.
3. Det brukes som et versjonskontrollsystem (VCS) for Ă„ spore endringer i datamaskinfiler.
* Distribuert versjonskontroll
* Koordinerer arbeid mellom flere utviklere
* Hvem gjorde hvilke endringer og nÄr
* GÄ tilbake til tidligere versjoner nÄr som helst
* Lokale og eksterne repositorier
## KONSEPTER I GIT
* Holder oversikt over kodehistorikk
* Tar "snapshots" av filene dine
* Du bestemmer nÄr du vil ta et snapshot ved Ä lage en "commit"
* Du kan besÞke ethvert snapshot nÄr som helst
* Du kan klargjĂžre filer fĂžr du gjĂžr en commit
### Forskjellen mellom Git og GitHub
| Git | GitHub |
| ------- | ----------- |
| Git er en programvare | GitHub er en skytjeneste |
| Git er installert lokalt pÄ systemet | GitHub er tilgjengelig pÄ nettet |
| Det er et kommandolinjeverktĂžy | Det er en grafisk brukergrensesnitt |
| Git vedlikeholdes av Linux | GitHub vedlikeholdes av Microsoft |
| Fokusert pÄ versjonskontroll og deling av kode | Fokusert pÄ sentralisert hosting av kildekode |
| Git er Äpen kildekode | GitHub har bÄde gratis- og betalte nivÄer |
| Git ble lansert i 2005 | GitHub ble lansert i 2008 |
## GIT-installasjon
* Linux (Debian)
`$sudo apt-get install git`
* Linux (Fedora)
`$sudo yum install git`
* [Last ned](http://git-scm.com/download/mac) for Mac
* [Last ned](http://git-scm.com/download/win) for Windows
### Installasjonsprosess:
1.
2.
3.
4.
5.
6. Deretter fortsett med Neste > Neste > Neste > Installer
7.
### Etter installasjon mÄ vi konfigurere Git ved hjelp av Git Bash
1. `git config --global user.name 'YourName'`
2. `git config --global user.email 'YourEmail'`
___
## Git-kommandoer
___
### Hente og opprette prosjekter
| Kommando | Beskrivelse |
| ------- | ----------- |
| `git init` | Initialiser et lokalt Git-repositorium |
| `git clone ssh://git@github.com/[username]/[repository-name].git` | Opprett en lokal kopi av et eksternt repositorium |
### Grunnleggende snapshotting
| Kommando | Beskrivelse |
| ------- | ----------- |
| `git status` | Sjekk status |
| `git add [file-name.txt]` | Legg til en fil i staging-omrÄdet |
| `git add -A` | Legg til alle nye og endrede filer i staging-omrÄdet |
| `git commit -m "[commit message]"` | UtfĂžr endringer |
| `git rm -r [file-name.txt]` | Fjern en fil (eller mappe) |
| `git push` | Skyv til eksternt repositorium |
| `git pull` | Hent siste endringer fra eksternt repositorium |
### Grening og sammenslÄing
| Kommando | Beskrivelse |
| ------- | ----------- |
| `git branch` | List opp grener (asterisken viser den aktive grenen) |
| `git branch -a` | List opp alle grener (lokale og eksterne) |
| `git branch [branch name]` | Opprett en ny gren |
| `git branch -D [branch name]` | Slett en gren |
| `git push origin --delete [branch name]` | Slett en ekstern gren |
| `git checkout -b [branch name]` | Opprett en ny gren og bytt til den |
| `git checkout -b [branch name] origin/[branch name]` | Klon en ekstern gren og bytt til den |
| `git branch -m [old branch name] [new branch name]` | Gi nytt navn til en lokal gren |
| `git checkout [branch name]` | Bytt til en gren |
| `git checkout -` | Bytt til den sist besĂžkte grenen |
| `git checkout -- [file-name.txt]` | Forkast endringer i en fil |
| `git merge [branch name]` | SlÄ sammen en gren med den aktive grenen |
| `git merge [source branch] [target branch]` | SlÄ sammen en gren med en mÄlgren |
| `git stash` | Lagre endringer midlertidig i et skittent arbeidsomrÄde |
| `git stash clear` | Fjern alle midlertidige lagrede endringer |
### Deling og oppdatering av prosjekter
| Kommando | Beskrivelse |
| ------- | ----------- |
| `git push origin [branch name]` | Skyv en gren til ditt eksterne repositorium |
| `git push -u origin [branch name]` | Skyv endringer til eksternt repositorium (og husk grenen) |
| `git push` | Skyv endringer til eksternt repositorium (husket gren) |
| `git push origin --delete [branch name]` | Slett en ekstern gren |
| `git pull` | Oppdater lokalt repositorium til nyeste commit |
| `git pull origin [branch name]` | Hent endringer fra eksternt repositorium |
| `git remote add origin ssh://git@github.com/[username]/[repository-name].git` | Legg til et eksternt repositorium |
| `git remote set-url origin ssh://git@github.com/[username]/[repository-name].git` | Sett en repositoriums opprinnelsesgren til SSH |
### Inspeksjon og sammenligning
| Kommando | Beskrivelse |
| ------- | ----------- |
| `git log` | Vis endringer |
| `git log --summary` | Vis endringer (detaljert) |
| `git log --oneline` | Vis endringer (kortfattet) |
| `git diff [source branch] [target branch]` | ForhÄndsvis endringer fÞr sammenslÄing |
---
**Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi tilstreber nÞyaktighet, vÊr oppmerksom pÄ at automatiserte oversettelser kan inneholde feil eller unÞyaktigheter. Det originale dokumentet pÄ sitt opprinnelige sprÄk bÞr anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for misforstÄelser eller feiltolkninger som oppstÄr ved bruk av denne oversettelsen.