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"
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
push til github
git push -u origin master