Git & GitHub

Kommer snart ....

Terminal - Gå til projektmappen

cd ~/Desktop/projektmappe

Tegnet ~
Har keyboard kombinationen + <¨> (højre hjørne ved siden af )

Går til roden af din Mac
cd ~/

For at "springe" fra mappe til mappe går man med cd ~/ først til brugermappen og cd ~/mappe/mappe/mappe til den ønskede mappe

Gå til en "undermappe" gøres helst simpelt ved at skrive
cd /mappe

Gå et niveau op i mappestrukturen
cd ..

Terminal - list mappe indhold

For at vise / liste indholdet i en mappe benyttes
ls

Få info omkring filer og mapper i en given mappe
ls -la

Terminal - git initialize

I projektmappen tastes

git init

Nu er mappen/projektet gjort til en "git repository"

https://git-scm.com/docs/git-init

Add

I "Staging environment" gemmes versionering af filerne fra dit projekt.
For at tilføje en projekt fil til Staging environment tastes
git add filnavn

For at tilføje all filer på engang til Staging environment skrives
git add .

For at tjekke hvilke filer der er tilføjet til Staging environment kan du skrive
git status

Tilføj alle filer og slettede filer på engang med koden

git add --all

Committing

"Commit" er næste skridt i processen.
Her er vi nu i projektet!
Version x.x
Vi skriver en log over hvor vi er i projektet lige nu

For at Commit de filer der findes i "Staging environment" skrives
git commit -m "Kort kommentar ala firste version af projekt XX"

Nu kan vi altid komme tilbage på et senere tidspunkt i projektforløbet ... fra senere version og få vist koden for denne "første version" af projektet

git log
Her kan du se din dine commit versioner og første linje af den tilhørende kommentar.

Checkout

Filer

Efter du har kodet nogle ændringer i en fil, som du fortryder, kan du "hente" den gamle/originale version af filen fra vores Staging environment ved at skrive

git checkout filnavn.xx

Commits

En 2. vigtig funktion ved git checkout er muligheden for at "hente" de gamle versioner af projektet.
Ved git log listes alle dine commits. Dem kan du se som lange underlige strenge 23cb10cd65d07f775421418a3ee48679b7c709b0 - for at vende tilbage for at arbejde på en sådan tidligere version af hele projektet, kan du skrive.

git checkout 23cb10cd65d07f775421418a3ee48679b7c709b0

Branches

Den 3. vigtige funktion du har med checkout er at skifte mellem forskellige Branches.

git checkout master

Her vender du tilbage til "master" branchen.

Reset HEAD

Hvis du ønsker at fjerne en fil version fra dit Working Environment kan det gøres ved

git reset HEAD filnavn.xx

Denne fil kommer du aldrig til at Commit, og du ønsker derfor at fjerne den fra Working Environment, for at arbejde videre på en anden version af filen

Slet en fil i projekt

Hvis du ønsker at slette en fil fra projektet, skal du på normal vis slette filen og derefter "fortælle" dit git projekt, at filen ikke længere skal benyttes i projektet.

git add filnavn.xxx

Her benyttes git add til at "tilføje en sletning af en fil"
kan virke lidt forvirrende at man skal tilføje noget man har slettet ;-)

Filen er endu ikke Committet, men kun fjernet fra dit Working Environment!

I terminalen kan man med

git rm filnavn.xxx

... både slette filen fra mappen og git add filnavn.xxx

(git commit mangler stadig!)

Log

Vis loggen for dit git projekt ved at skrive

git log

Her kan du se de forskellige versioner af dine Commit

Detached HEAD

Efter ar have "rullet en tidligere version tilbage til dit Working Environment ved

git checkout 23cb10cd65d07f775421418a3ee48679b7c709b0

... arbejder du nu i et "detached HEAD" - en slags legeplads hvor du kan arbejde med denne ældre version af projektet - ændre filer, tilføje nye etc. MEN du har stadig muligheden for at vende tilbage til den seneste/stabile version af projektet som du forlod ved git checkout

Hvis du ønsker at beholde koden i detached HEAD som en helt ny alternativ version af projektet kan du tilføje det en helt ny "Branch"

git branch NAVN nr-på-detached-HEAD

eks.

git branch NyRetning 23cb10c

Branch

Liste dine branches ved

git branch

Du skifter mellem dine forskellige branches (hvis du har flere) ved git checkout NAVN eks git checkout master

For at oprette en ny Branch skal du skrive

git branch NAVN-PÅ-DEN NYE-BRANCH

Ny branch

Når man har oprette en ny brach befinder du dig stadig i den gamle .... så husk at skifte over til den nye hvis det er her du vil arbejde!

git checkout NAVN-PÅ-DEN NYE-BRANCH

Omdøb branch

Ønkser du at ændre navnet på en branch gøres det ved

git branch -m GAMMEL-BRANCH-NVAN NY-BRANCH-NAVN

-m betyder faktisk "move" ... så du flytter fra et navn til et andet!

Slet branch
Skal en branch slettes gøres det ved

git branch -D NAVN-PÅ-BRANCH-DER-SKAL-SLETETS

-D = slette

Merge

Er du så tilfreds med en Branch, at du vil benytte den i din Master Branch kan du (hvis du står i "master") skrive

git merge NAVN-PÅ-BRANCE-DU-VIL-HIVE-OVER-I-MASTER