Dodaj literaturo

This commit is contained in:
Martin Vuk 2026-01-03 22:20:33 +01:00
parent eec4c82dd6
commit 3ed5950c53
2 changed files with 3791 additions and 3573 deletions

File diff suppressed because it is too large Load diff

View file

@ -12,13 +12,14 @@
[Opomba\ ] + content))
#let abstract(content) = align(center,
box(width: 80%,
align(center, [*Abstract*\ ]) + align(left, content)
align(left, content)
))
#align(center)[
#set text(size:2em)
*Git za matematike*
#text(size:2em)[*Git za matematike*]
#v(2em)
Martin Vuk
]
#v(2em)
@ -67,8 +68,8 @@ Ko ustvarimo nov Git repozitorij, Git ustvari direktorij z imenom `.git`, ki vse
- kazalce na posamezne posnetke stanja
Git repozitorij je vsak direktorij, ki vsebuje poddirektorij `.git` z zgoraj navedenimi podatki.
Podrobnosti o tem lahko preberete
#link("https://git-scm.com/book/en/v2/Git-Internals-Git-Objects")[poglavju o shrambi objektov] v knjigi o Gitu.
Podrobnosti o tem lahko preberete v knjigi Pro Git
#cite(<chacon_102_nodate>, supplement: [pog. 10.2]).
== Zgoščevalna funkcija
@ -125,7 +126,7 @@ Git bo shranil naslednje objekte v vsebinsko naslovljivo shrambo:
040000 tree e8cc593eddfb9cfdafb4f9c46ab7f5a05ea00b2b mapa")
Git z uporabo zgoščene vrednosti kot kazalca na vsebino, vsebino direktorija postavi v podatkovno strukturo, ki jo matematično lahko opišemo z _usmerjenim acikličnim grafom_. Ko je vsebina
datotek enaka(npr. `bla.txt` in `mapa/bla.txt`), Git shrani le eno kopijo, ki je dostopna v datoteki `.git/objects/bc/c1382241e267cf790ca6b3afe9fde6dcf1072f`. Zato datotečno drevo v Gitu ni nujno drevo, ampak usmerjen aciklični graf.
datotek enaka(npr. `bla.txt` in `mapa/bla.txt`), Git shrani le eno kopijo, ki je dostopna v datoteki `.git/objects/bc/c1382241e267cf790ca6b3afe9fde6dcf1072f`. Zato datotečno drevo v Gitu ni nujno predstavljeno kot drevo, ampak kot usmerjen aciklični graf.
#let bla(coord, ..args) = file-object(coord, "bcc138", ..args)[bla]
#let blabla(coord, ..args) = file-object(coord, "2ce22b", ..args)[blabla]
@ -411,14 +412,19 @@ git rebase referenca
prestavi vnose v trenutno izbrani veji tako, da so potomci vnosa, na katerega kaže referenca. Med ukazi, ki smo jih spoznali, je ta ukaz edini, ki lahko povzroči izgubo podatkov. Običajno ukazi le dodajajo nove vnose in prestavljajo
reference. Zato je večina ukazov v Gitu varna, v smislu, da jih lahko kasneje prekličemo in pridemo nazaj na prejšnje stanje. Ukaz `rebase` pa spremeni zgodovino in ga ne moremo preklicati, saj trenutne vnose nadomesti z novimi in stare vnose pobriše#footnote[Obstaja enostaven način, da tudi `rebase` lahko prekličemo. Na zadnji vnos, ki ga želimo prestaviti preprosto postavimo novo referenco(vejo ali oznako). To povzroči, da se stari vnosi ne pobrišejo tudi, ko se izvede ukaz `rebase`.].
== Delo z Git
== Zaključek
Opis dela z Gitom presega namen tega dokumenta. Zato vas raje preusmerimo na uradno dokumentacijo:
Spoznali smo, kako deluje Git in s katere matematičnime pojme uporablja za model. Opis dela z Gitom presega namen tega dokumenta, zato vas raje usmerim na uradno dokumentacijo:
#align(center, text(size: 1.5em)[https://git-scm.com/cheat-sheet])
Pri pisanju tega članka sem sevada uporabljal Git. V
#link("https://git.fri.uni-lj.si/martin.vuk/git-intro")[javno dostopnem repozitoriju] si lahko ogledate celotno zgodovino nastajanja tega članka.
Pri pripravi dokumenta sem uporabil Gemini 3. Vse odgovore sem preveril in uredil po svoje.
#bibliography("reference.bib")
Sledi še skica, ki povzame vse komponente Git repozitorija.
#set page(numbering: none)
#include "git-figure.typ"