forked from tkrajina/uvod-u-git
-
Notifications
You must be signed in to change notification settings - Fork 0
/
prikaz-povijesti.tex
77 lines (41 loc) · 2.95 KB
/
prikaz-povijesti.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
\tocChapter{Prikaz grana u git alatima}
Način kako su grafovi repozitorija prikazivani u ovoj knjizi nije isti kako ih prikazuju grafički alati za rad s gitom.
Odlučio sam se na ovakav prikaz jer mi se činilo intuitivnije za razumijevanje, ali da bi lakše radili s alatima kao što je \verb+gitk+ napraviti ću ovdje kratak pregled kako ti alati prikazuju povijest, $commit$ove i grane.
Osnovna razlika je u tome što grafički alati obično prikazuju povijest od dolje (starije) prema gore (novije)
i to što \emph{commit}ovi iz iste grane nisu prikazani u posebnom retku (ili stupcu).
\tocSection{Prikaz lokalnih grana}
Situacija kojoj imamo samo \verb+master+ i onda stvorimo ovu granu u kojoj još nismo ništa $commit$ali:
\input{graphs/git_merge_01}
Ovdje je strelica prikazano samo zato da se vidi da smo \verb+eksperimentalna-grana+ kreirali iz $commit$a $c$.
No, ta grana je trenutno ista kao i \verb+master+.
U \verb+gitk+u će ta ista situacija biti prikazana kao:
\gitgraphics{images/gitk-001.png}{8cm}
Drugim riječime, \verb+master+ i \verb+eksperimentalna-grana+ pokazuju na isti $commit$.
Slična situacija:
\input{graphs/git_merge_02}
\dots{}će biti prikazana ovako nekako:
\gitgraphics{images/gitk-002.png}{8cm}
Kao što vidite, u istom stupcu su prikazane obje grane, samo je označen zadnji $commit$ za svaku granu.
No, to već znamo -- $commit$ i nije ništa drugo nego pokazivač na jedan $commit$.
Ukoliko imate dvije grane u kojima se paralelno razvijao kod:
\input{graphs/git_merge_1}
\dots{}\verb+gitk+ će prikazati:
\gitgraphics{images/gitk-003.png}{8cm}
\dots{}u principu slično, jedino što se alat trudi da pojedine $commit$ove prikazuje svakog u posebnom redu.
Ukoliko se s \verb+master+ prebacite na \verb+eksperimentalna-grana+, graf će biti isti jedino će se prikazati na kojoj ste točno grani:
\gitgraphics{images/gitk-004.png}{8cm}
Nakon ovakvog $merge$a:
\input{graphs/git_merge_2}
\dots{}graf je:
\gitgraphics{images/gitk-005.png}{8cm}
\tocSection{Prikaz grana udaljenog repozitorija}
Ukoliko imamo posla i s udaljenim repozitorijima, onda će njihove grane biti prikazane na istom grafu kao npr. \verb+remotes/origin/master+ ili \verb+origin/grana+.
Recimo da nemamo ništa za $push$ati na udaljeni repozitorij (nego čak imamo nešto za \textbf{preuzeti} iz njega):
\gitgraphics{images/origin_master_ispred_master.png}{5cm}
Iz ovoga je jasno da za naš \verb+master+ "zaostaje" za četiri $commit$a u odnosu na udaljeni \verb+master+.
Primjer gdje imamo dva $commit$a koje nismo $push$ali, a mogli bismo:
\gitgraphics{images/master_ispred_origin_master.png}{5cm}
Primjer gdje imamo tri $commit$a za $push$anje, ali trebamo prije toga preuzeti četiri $commit$a iz \verb+origin/master+ i $merge$ati ih u našu granu:
\gitgraphics{images/master_i_origin_master_divergirani.png}{5cm}
I, situacija u kojoj je lokalni \verb+master+ potpuno isti kao udaljeni \verb+origin/master+:
\gitgraphics{images/master_i_origin_master_isti.png}{6.5cm}