You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/07-git-tools/sections/rerere.asc
+12-9Lines changed: 12 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,17 +2,17 @@
2
2
=== Rerere
3
3
4
4
Funkcionalnost `git rerere` je nekoliko skrita značilnost.
5
-
Ime izhaja iz "`reuse recorded resolution`" in vam, kot že samo ime nakazuje, omogoča, da si Git zapomni, kako ste rešili konflikt med kosi, tako da vam lahko prihodnjič pomaga in konflikt reši avtomatično.
5
+
Ime izhaja iz "`reuse recorded resolution`" ("`ponovno uporabi posneto rešitev`") in vam, kot že samo ime nakazuje, omogoča, da si Git zapomni, kako ste rešili konflikt med kosi, tako da vam lahko prihodnjič pomaga in konflikt reši avtomatično.
6
6
7
7
Obstaja več scenarijev, kjer je ta funkcionalnost zelo priročna.
8
8
Eden izmed primerov, ki ga omenjajo v dokumentaciji, je, ko želite zagotoviti, ali se bo dolgotrajna tematska veja na koncu združila brez konfliktov, vendar pa v vaši zgodovini ne želite imeti veliko vmesnih potrditev združitev.
9
-
Z vklopljenim `rerere` lahko občasno poskusite združiti, rešite konflikte, nato pa se umaknete iz združitve.
9
+
Z vklopljenim `rerere` lahko občasno poskusite združiti, rešite konflikte, nato pa izstopite iz združitve.
10
10
Če to počnete neprestano, bi morala biti končna združitev enostavna, saj lahko `rerere` vse naredi za vas avtomatično.
11
11
12
12
Enako taktiko lahko uporabite, če želite ohraniti vejo ponovno bazirano, da se ne boste rabili ukvarjati z istimi konflikti pri vsakem ponovnem baziranju.
13
13
Ali pa, če želite vzeti vejo, ki ste jo združili in rešili veliko konfliktov, in se odločite, da jo boste raje ponovno bazirali - verjetno vam ni treba znova reševati vseh istih konfliktov.
14
14
15
-
Druga uporaba `rerere` je, ko združujete več tematskih vej, ki se razvijajo, skupaj v testno glavo, kar naredi tudi sam projekt Git.
15
+
Druga uporaba `rerere` je, ko združujete več tematskih vej, ki se razvijajo, skupaj v testno glavo, kar uporablja občasno tudi sam projekt Git.
16
16
Če testi niso uspešni, lahko izbrišete združitve in jih ponovno izvedete brez tiste tematske veje, ki je naredila težave, ne da bi se morali ponovno spopasti s konflikti.
17
17
18
18
Za vklop funkcionalnosti `rerere` morate samo nastaviti to nastavitev konfiguracije:
@@ -38,7 +38,8 @@ end
38
38
39
39
V eni veji spremenimo besedo "`hello`" v "`hola`", nato pa v drugi veji spremenimo "`world`" v "`mundo`", tako kot prej.
40
40
41
-
image::images/rerere1.png[]
41
+
.Dve veji spreminjata isti del iste datoteke na različen način
42
+
image::images/rerere1.png[Dve veji spreminjata isti del iste datoteke na različen način]
42
43
43
44
Ko združimo dve veji skupaj, bomo dobili konflikt združevanja:
44
45
@@ -51,7 +52,7 @@ Recorded preimage for 'hello.rb'
51
52
Automatic merge failed; fix conflicts and then commit the result.
52
53
----
53
54
54
-
Opazili bi morali novo vrstico `Recorded preimage for FILE`.
55
+
Opaziti bi morali novo vrstico `Recorded preimage for FILE`.
55
56
Sicer bi morala izgledati enako kot običajen konflikt med združevanjem.
56
57
V tem trenutku nam lahko `rerere` pove nekaj stvari.
57
58
Običajno bi zdaj zagnali ukaz `git status`, da bi videli, kaj vse je povzročilo konflikt:
@@ -143,9 +144,10 @@ Recorded resolution for 'hello.rb'.
143
144
144
145
Vidite lahko, da se prikaže sporočilo "Recorded resolution for FILE", kar pomeni, da je bila rešitev konflikta uspešno posneta.
145
146
146
-
image::images/rerere2.png[]
147
+
.Uspešno posneta rešitev za datoteko
148
+
image::images/rerere2.png[Uspešno posneta rešitev za datoteko]
147
149
148
-
Zdaj pa razveljavimo to združitev in namesto tega ponovno bazirajmo na vrh naše veje `master.
150
+
Zdaj pa razveljavimo to združitev in namesto tega ponovno bazirajmo na vrh naše veje `master`.
149
151
To lahko storimo z ukazom `git reset`, kot smo videli v poglavju <<ch07-git-tools#_git_reset>>.
150
152
151
153
[source,console]
@@ -205,7 +207,8 @@ index a440db6,54336ba..0000000
205
207
end
206
208
----
207
209
208
-
image::images/rerere3.png[]
210
+
.Avtomatsko rešen konflikt združevanja z uporabo prejšnje rešitve
211
+
image::images/rerere3.png[Avtomatsko rešen konflikt združevanja z uporabo prejšnje rešitve]
209
212
210
213
Z `git checkout` lahko tudi ponovno kreirate stanje konfliktne datoteke:
211
214
@@ -249,4 +252,4 @@ $ git rebase --continue
249
252
Applying: i18n one word
250
253
----
251
254
252
-
Če torej pogosto ponovno združujete veje, ali želite imeti tematsko vejo posodobljeno z vejo `master` brez veliko združevanj, ali pogosto ponovno bazirate, lahko vklopite `rerere` in si tako olajšate življenje.
255
+
Če torej pogosto ponovno združujete veje, ali želite imeti tematsko vejo posodobljeno z vejo `master` brez veliko združevanj, ali pogosto ponovno bazirate, lahko vklopite `rerere` in si tako olajšajte življenje.
0 commit comments