Git & GitHub

Kommer snart ....

Terminal - Gå til projektmappen

cd ~/Desktop/projektmappe

Tegnet ~
Har keyboard kombinationen < alt > + <¨> (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 ..

Fin sti til en mappe på din Mac

1) marker mappen
2) < alt > + < cmd > + < c >

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

Clone projekt fra Github

Når du har fundet et projekt på https://github.com du ønsker at arbejde videre med lokalt på din Mac, kan du i terminalen først gå til den mappe, som du øsnker, at det nye projekt skal ligge i - eksempelvis på skrivebordet cd ~/Desktop
Her kan du nu "downloade" / klone projektet via

git clone https://github.com/xxx/yyy.git

På github.com kan du se den grønne knap, hvor du kan kopiere den rigtige URL

Man får kun en Brach med = "Master"
Hvis du i terminalen skriver git branch -a listes alle de branches der ikke blev klonet / pull, men som ligger på github.com

git branch -a

Hvis du vil hente en tidligere brach kan det gøres ved

git checkout -b NAVN origin/02_03

.. her blev der altså oprettet en ny branch = NAVN og hentede filerne fra github.com projektet i en brach med navnet 02_03
Det kunne give god mening, at give den lokale branch = NAVN samme navn som på github - altså 02_03 - men altså ikke nødvendigt!

Hvis du IKKE ønsker at klonen master branchen fra begyndelsen af, men en specifik brach (tidligere) kan det gøres ved

git clone -b NAVN-PÅ-BRANCHE https://github.com/xxx/yyy.git

Fjern git fra projekt

Du kan fjerne git fuldstændigt fra et projekt - måske for at begynde forfra med git ... for at fjene alle gamle log.
I terminalen går du til projektmappen og skriver

rm -dfr .git

NB!
Pas på med denne kode da den uden yderliger spørgsmål sletter mappen = .git

Github

se her:
https://help.github.com/articles/adding-an-existing-project-to-github-us...