vef1-2025

Vefforritun 1 kennd haustið 2025

View the Project on GitHub vefforritun/vef1-2025

Fyrirlestur – Git

Vefforritun 1 — TÖL107G

Ólafur Sverrir Kjartansson, osk@hi.is


Pro Git

Þessi yfirferð byggir á köflum 1, 2, 3, 6 og 7 í Pro Git eftir Scott Chacon og Ben Staub


Version control



Local version control


Centralized version control



Centralized version control


Distributed version control


 Distributed version control


Repo


Git



Git snapshots


Git er staðbundið (local)


Git byggir á heilleika


Git bætir yfirleitt bara við


Þrjár stöður skráar í Git


Þrjú svæði verkefnis í Git


Svæði verkefna í git


Git verkflæði

  1. Breyta skrám í working directory
  2. Stagea skrám á staging area
  3. Commita, færa skrár úr staging area í Git repo

Git og CLI


Uppsetning á Git


Búa til Git repo


Sækja Git repo sem er til


Git og skrár í verkefni


Git lifecycle


Git skipanir og skrár


.gitignore

.gitignore er sérstök skrá sem inniheldur lista af skrám og möppum sem Git lætur vera

# athugasemd

# ekki geyma node_modules möppu í git
node_modules/

# ekki geyma "style.css" sem við
# þýðum frá "styles.scss"
style.css

git commit


Commit message



Conventional commits


Fjarlægja og færa


Git saga


Taka til baka eða breyta í Git


Bæta við commit

Ef við gleymum skrá í commiti getum við bætt við og notað amend til að bæta við:

> git commit -m "Initial commit"
> git add gleymdist.txt
> git commit --amend

Fjarlægja úr staged

> git add data.txt
> git reset HEAD data.txt

Fjarlægja breytingar

Ef við viljum hætta við allar breytingar í skjali getum við notað git checkout -- <skrá>

> git checkout -- data.txt

Við missum allar breytingar síðan seinasta commit með þessari skipun


Remotes


Skoða og vinna með remotes



Senda breytingar í remote


git push



Sækja breytingar frá remote


Branches



Merge


Merge conflicts


Merge conflict

> git merge iss53
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
 please contact us at support@github.com
</div>
>>>>>>> iss53:index.html

Merge commits

Þegar við erum að vinna nokkur saman getum við lent í mörgum merge commitum

aaaaaaa – Fix foo
bbbbbbb – Merge branch 'main' of https://github.com/foo
ccccccc – Add bar
ddddddd – Merge branch 'main' of https://github.com/foo
eeeeeee – Remove baz
fffffff – Merge branch 'main' of https://github.com/foo