Git installation. Vælg den der passer til dit operativ system. På mac er git sikkert allerede installeret. Bruger du linux, ved du formentlig selv hvordan du installerer pakker, der passer til din distribution.
flowchart TD;
EDIT("opret/rediger/slet fil(er)") --> STAGE("udvælg ændringer")
STAGE --> COMMIT("Commit i lokalt depot")
COMMIT --> DO_PUSH{Klar til offentliggørelse?}
DO_PUSH -->|Nej| EDIT
DO_PUSH -->|Ja| PUSH("Skub ændriger til 'remote'")
PUSH --> EDIT
Den følgende illustration viser hvordan forskellige kommandoer påvirker komponenterne i git systemet.
Samarbejde via github
For at kunne samarbejde om den samme kodebase er det nødvendigt med en smule setup for at komme igang.
Hvis vi tager udgangspunkt i et nyt projekt kræves denne opsætning.
opret et repository i github
lave en klon på den/de computere der skal deltage.
Ejeren af “repository” skal tilføje de andre bruger som samarbejdspartnere (Collaborators)
Samarbejdspartnere skal acceptere invitationen (typisk via et link i en email)
Efter accept af samabejdsinvitation kan de inviterede brugere skubbe kode ind i projektet.
Samarbejde via Git
Her er en visualisering af opsætningen med to samarbejdende udviklere.
graph TB
remote_repo(remote repo)
your_repo(you local repo)
friend_repo(friend local repo)
your_wd
friend_wd
your_repo --> |push| remote_repo
remote_repo --> |pull| your_repo
friend_repo --> |push| remote_repo
remote_repo --> |pull| friend_repo
subgraph you
your_wd -->|commit| your_repo
end
subgraph friend
friend_wd --> |commit| friend_repo
end
subgraph github
remote_repo
end
Basale kommandoer
Ønsker du er bruge git fra en kommando prompt er her en liste med basale kommandoer
Github pages
Her finder du en guide til at komme igang med Github pages.
Denne videoguide forklarer hvordan man kommer igang med at bruge github pages til at hoste sin webside.
Konfliktløsning
Når man er flere der samarbejder om samme kode kompleks opstår der uungåeligt det at man på et tidspunkt kommer til at ændre i en fil , der allerede er blevet ændret af en anden person.
Derfor er det nødvendigt at vide hvordan man løser disse konflikter i git, så man kan komme videre med arbejdet.
Konfliktløsningsscenariet kan illustreres med et eksempel i et sekvensdiagram.
sequenceDiagram
%%Bob: asdfas fasfd
Note over Alice,Bob: Succesful interaction
Bob ->> Bob : commit
Bob ->>+ github : push
github -->>- Bob : success
Bob ->>+ Alice : "Please pull the latest code"
Alice ->>+ github : pull
github -->>- Alice : latest code
Alice -->>- Bob : "OK, done"
Alice ->> Alice : commit
Alice ->>+ github : push
github -->>- Alice : success
Alice ->>+ Bob : "I pushed some changes"
Bob ->>+ github : pull
github -->>- Bob : latest code
Bob -->>- Alice : "OK, done"
Note over Alice,Bob: Handling merge conflicts
Bob ->> Bob : commit
Alice ->> Alice : commit
Alice ->>+ github : push
github -->>- Alice : success
Alice ->>+ Bob : "I pushed some changes"
Bob ->>+ github : push
github -->>- Bob : error, not on latest commit
activate Bob
Bob ->>+ github : pull
github -->>- Bob : latest code
Bob ->> Alice : "Oh no, lots of conflicts!"
Bob ->> Bob : resolve conflicts locally
Bob ->>+ github : push
github -->>- Bob : success
Bob ->>+ Alice : "Managed to resolve the conflicts, please review"
deactivate Bob
Alice -->>- Bob : "OK, sorry!"
Alice ->>+ github : pull
github -->>- Alice : latest code
Alice ->>+ Bob : "pulled the code, no issues!"
Bob -->>- Alice : "OK, great"
%% Bob -->>- Alice : "I hope it merges cleanly"
Konfliktløsning i git er også beskrevet i denne video.